Java文字列が異なるかどうかの判断方法
Javaでは、文字列等のオブジェクトが等しいかどうかはequalsメソッドで判定できます。equalsメソッドはObjectクラスで定義され、すべてのクラスはObjectクラスを継承しているため、すべてのクラスでequalsメソッドを利用してオブジェクト同士の等価性を判定できます。
以下にサンプルコードを示します。
String str1 = "Hello";
String str2 = "World";
if (str1.equals(str2)) {
System.out.println("字符串相等");
} else {
System.out.println("字符串不相等");
}
上のコードでは、str1とstr2の中身が異なるため、equalsメソッドはfalseを返すことになります。
equalsメソッド以外に、==演算子で文字列同士が等しいかを判定できます。==演算子は2つのオブジェクトの参照が等しいかを判定します。2つの文字列オブジェクトの参照が等しければ、同じオブジェクトということなので等しいです。ただし、==演算子は文字列の内容を比較する際には必ずしも正しい結果が得られるわけではありません。オブジェクトの参照を比較するものであり、オブジェクトの値を比較するものではないからです。
下記にサンプルコードを示します。
String str1 = "Hello";
String str2 = "Hello";
if (str1 == str2) {
System.out.println("字符串相等");
} else {
System.out.println("字符串不相等");
}
上記のコードでは、str1とstr2は同じ文字列オブジェクトを参照するため、== 演算子は真を返して、文字列の等価性を示します。
文字列オブジェクトは不変であることに注意しなければならない。一旦、作成されると値は変更できない。したがって、文字列に修正を加える必要がある場合は、StringBuilder または StringBuffer クラスを使って操作する必要がある。