私はある人に、String.equals メソッドを使用して 2 つの文字列値を比較する必要があることを伝えていました。Java で == 演算子を単純に使用して文字列を比較することはできません。文字列値を比較しますが、String オブジェクト参照値です。
私は彼に見せるためにこの例を書きましたが、驚いたことに、== 演算子の場合は常に true と出力されます。コードは次のとおりです。
public void exampleFunc1(){
String string1 = "ABC";
String string2 = "ABC";
if(string1 == string2)
System.out.println("true");
else{
System.out.println("false");
}
System.out.println(" Are they equal "+(string1 == string2)); // this shouldn't print True but it does
System.out.println(" Are they equal "+(string1.equals(string2)));
}
出力:-
それらは真に等しいですか
それらは真に等しいですか
ここでの質問は、両方のオブジェクトが同じインスタンスであることを除いて、オブジェクトの == 演算子が true を出力できるのはどのような状況でしょうか?