2017-05-02 13 views
0

私は、またはで条件を作るのに何らかの問題があります。 私の問題を見てください。私はそれを実行した場合、それは作品だ:if文の問題

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

//それが真の言っているが、私は

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

ことを行う場合は、あなたが私を助けることができる、それが偽 を言っていますか?

+1

'startsWith("^Item Type ")' –

+0

に空白があります。 '' p_fileAccess.readLine()。trim()と仮定します。startsWith( "^ Item Type") 'は文字列を返します。他の文字列と連結することができます。だから、あなたは文字列に適用しているか、絶対に間違っています。 – user7185318

+0

同じ問題です。 – kazor02x

答えて

2

最初の条件は行番号1を読み取り、2番目の部分は再び読み取ります(行番号2)。

はこれを試してみてください:

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

OPにコメントとして書きましたが、 'startsWith("^Item Type ")'に空白がありますので、2番目の部分は 'true'にならないでしょう(' trim'のため) –

+0

あなたは本当の神です – kazor02x

+0

@ StefanWarminski、ファイルは の形式にすることができます^アイテムタイプtype1 ^アイテムタイプtype2 *アイテムタイプtype3 です。問題は、異なる行の比較にあった。 –

1

はp_fileAccessは、バッファリーダーまたは類似であると仮定すると、コードの2番目の行は、ファイル内の2つの異なる行を見ています。最初のものは "* Item Type"で始まらず、2番目のものは "^ Item Type"で始まらない。