2017-05-02 3 views
0

Ich habe Probleme, eine Bedingung mit einem oder zu machen. Sehen Sie sich mein Problem an. wenn ich ausführen, dass, es funktioniert:Problem in einer if-Anweisung

System.out.println(p_fileAccess.readLine().trim().startsWith("^ Item Type")); 

// es sagt wahr, aber wenn ich das tun

System.out.println("data :"+(p_fileAccess.readLine().trim().startsWith("* Item Type")||p_fileAccess.readLine().trim().startsWith("^ Item Type "))); 

es sagt falsche können Sie mir helfen?

+1

Es gibt einen Leerraum in 'startsWith ("^Elementtyp ")' –

+0

Ich nehme an 'p_fileAccess.readLine(). Trim(). StartsWith ("^Elementtyp ")' gibt einen String zurück, sonst werden Sie nicht kann es mit einer anderen Zeichenfolge verketten. Also, Sie bewerben oder auf Strings, was absolut falsch ist. – user7185318

+0

Es ist das gleiche Problem – kazor02x

Antwort

2

Die erste Bedingung lautet Zeile 1 und der zweite Teil wird erneut gelesen (Zeile 2).

Versuchen Sie folgendes:

String line = p_fileAccess.readLine().trim(); 
System.out.println("data:" + (line.startsWith("* Item Type") || line.startsWith("^ Item Type "))); 
+1

Wie ich als Kommentar zu OP geschrieben habe: Es gibt einen weißen Bereich in 'startsWith ("^Item Type ")' so wird der zweite Teil niemals 'true' (wegen' trim') –

+0

du bist der wahre Gott – kazor02x

+0

@ StefanWarminski, Datei kann im Format ^ Artikel Typ Typ1 ^ Artikel Typ Typ2 * Artikel Typ Typ3 so ist es OK. Problem war im Vergleich verschiedener Linien. –

1

Unter der Annahme, p_fileAccess ist eine gepufferte Lesegerät oder ähnliches, Ihre zweite Codezeile wird an zwei verschiedenen Zeilen in der Datei suchen. Die erste beginnt nicht mit "* Item Type" und die zweite beginnt nicht mit "^ Item Type".

Verwandte Themen