Java で文字列を比較し、同じかどうかを判定するには、String.equals メソッドを使用します。equals メソッドは大文字小文字を区別して文字列の比較を行います。大文字小文字を区別なく比較したい場合は、equalsIgnoreCase メソッドを使用します。
他の言語などで「==」を使用した文字列比較などがありますが、Java では「==」は、文字列ではなく参照先の比較となってしまうので、文字列の比較として「==」を使用することはできません。
メソッド | 戻り型 | 説明 |
equals(String)
|
bool
|
文字列を大文字小文字の区別をして比較します。
|
equalsIgnoreCase(String)
|
bool
|
文字列を大文字小文字の区別なく比較します。
|
equalsメソッドで比較
equals メソッドは比較元の String オブジェクトと引数で指定した文字列を、大文字小文字の区別をして比較し、結果を bool 型で返します。比較先(引数となる文字列)が null でも問題ありませんが、比較元(String オブジェクト)が null の場合は NullPointerException が発生します。
【サンプルコード】
class Sample1 {
public static void main(String[] args) {
try {
//比較データの設定
String str1 = "ABCDE";
String str2 = "abcde";
//文字列比較
if (str1.equals(str2)) {
System.out.println("str1とstr2は同じです。");
} else {
System.out.println("str1とstr2は違います。");
}
} catch(NullPointerException e) {
System.out.println("NullPointerExceptionが発生しました。");
} catch(Throwable e) {
System.out.println("予期しない例外が発生しました。");
}
}
}
※ 上記例は、str1とstr2が大文字小文字で違うので、結果は「str1とstr2は違います。」となります。
equalsIgnoreCaseメソッドで比較
equalsIgnoreCase メソッドは比較元の String オブジェクトと引数で指定した文字列を、大文字小文字の区別なく比較し、結果を bool 型で返します。equals メソッドと同様、比較元(String オブジェクト)が null の場合に NullPointerException が発生します。
【サンプルコード】
class Sample2 {
public static void main(String[] args) {
try {
//比較データの設定
String str1 = "ABCDE";
String str2 = "abcde";
//文字列比較
if (str1.equalsIgnoreCase(str2)) {
System.out.println("str1とstr2は同じです。");
} else {
System.out.println("str1とstr2は違います。");
}
} catch(NullPointerException e) {
System.out.println("NullPointerExceptionが発生しました。");
} catch(Throwable e) {
System.out.println("予期しない例外が発生しました。");
}
}
}
※ 上記例は、str1 と str2 が大文字小文字で違いますが、equalsIgnoreCase メソッドは大文字小文字を区別しませんので結果は「str1とstr2は同じです。」となります。