2

外部のtxtファイルで特定の文字列値を検出しようとしています。この場合、私は%%を検出しようとしています。

public void read(){
    while(x.hasNext()){
        String a = x.next();
        System.out.println(a);
        if(a == "%%"){
            System.out.println("Found the end");
        }
        else{
            System.out.println("No end");
        }

    }
}

ファイルから単語を出力するため、xを正しく読み取っていますが、「%%」であっても、すべての単語の後に「終わりなし」と表示されます。私はどこかでいくつかのばかげた間違いをしていると確信しています、私はそれを見つけることができません。xは次のようになります:アップルオレンジ%%ブドウ。これに関する助けをいただければ幸いです。

4

3 に答える 3

3

String::equals()比較には使用する必要がありますが、演算子は使用しないで==ください。==演算子は、Stringのアドレス位置とあなたの場合の文字列リテラルを比較し%%ます。

于 2012-07-05T13:44:18.737 に答える
3

試す

    if(a.trim().equals("%%"))
    {
        System.out.println("Found the end");
    }

これにより、文字列の最後にある余分な空白がなくなり、適切な比較が保証されます。

于 2012-07-05T13:47:02.487 に答える
1

参照をチェックするのequalsではなく、メソッドを使用して論理的等式を使用する必要があります。==

if(a.equals("%%")){
        System.out.println("Found the end");
    }
    else{
        System.out.println("No end");
    }
于 2012-07-05T13:46:12.913 に答える