Javaで文字列を比較する際には、equals()
メソッドがよく知られていますが、実はさまざまな方法があります。以下はそのいくつかの方法です。
1. equals()メソッドの使用
String str1 = "Hello";
String str2 = "Hello";
if (str1.equals(str2)) {
System.out.println("str1とstr2は等しい");
} else {
System.out.println("str1とstr2は等しくない");
}
2. compareTo()メソッドの使用
compareTo()
メソッドは、文字列の辞書順比較を行います。戻り値が0ならば等しいです。
String str1 = "Apple";
String str2 = "Banana";
int result = str1.compareTo(str2);
if (result == 0) {
System.out.println("str1とstr2は等しい");
} else if (result < 0) {
System.out.println("str1はstr2より前にある");
} else {
System.out.println("str1はstr2より後ろにある");
}
3. Objects.equals()メソッドの使用
Objects.equals()
メソッドは、nullセーフな比較を提供します。
String str1 = "Hello";
String str2 = "Hello";
if (Objects.equals(str1, str2)) {
System.out.println("str1とstr2は等しい");
} else {
System.out.println("str1とstr2は等しくない");
}
4. ==演算子の使用
==
演算子は、参照が同じかどうかを比較します。文字列の内容ではなく、オブジェクトの同一性を確認する点に注意してください。
String str1 = new String("Hello");
String str2 = new String("Hello");
if (str1 == str2) {
System.out.println("str1とstr2は同じオブジェクトを参照している");
} else {
System.out.println("str1とstr2は異なるオブジェクトを参照している");
}
これらの方法を理解して、適切な場面で使い分けることで、文字列比較においてより正確な結果を得ることができます。