2011-12-30 5 views
-3

可能性の重複:
Java String.equals versus ==Javaでの文字列比較: "=="の何が問題なのですか?

public class S_eaqual { 
    public static void main(String[] args) { 
     String s1 = "one", s2 = "two"; 
     if (s1 + s2 == "onetwo") { 
      System.out.println("Yes..equal"); 
     } 
    } 
} 

比較のこのタイプは、エラーを示しています。これは文字列を比較する正しい方法ではありませんか? 2つのStringオブジェクトは、==オペレータを使用して比較できます。では、なぜこれがエラーを表示していますか?

+5

参照してください:http://stackoverflow.com/questions/767372/java-string-equals-versus –

+3

私はそれを実行してみました。私は何の誤りもありませんでした。それは文字列が等しくないbcosを何も印刷しませんでした。あなたが持っているエラーを教えていただけますか? – Ryan

答えて

3

文字列はequalsメソッドを使用して比較する必要があります。

String s1 = "one", s2 = "two"; 
if("onetwo".equals(s1+s2)) { 
    System.out.println("Yes..equal"); 
} 
2

使用(s1+s2).equals("onetwo");代わり

2

彼らは同じオブジェクトを参照する場合

String s3 = s1 + s2 
if(s3.equals("onetwo")) { 
... 

==を比較し、s1+s2の結果は、このケースではない、と...これを試してみてください.equals() stringのメソッドは、値が同じであることを比較します。通常、プリミティブ値の比較には==を使用します。オブジェクトの場合は、2つの参照が同じオブジェクトを指していることを確認することができます。

2

使用に等しい:

if (s1.concat(s2).equals("onetwo")) System.out.println("Yes..equal");