Javaで2つの文字列を比較する場合、「==」(イコール2つ)は、同一のオブジェクトかどうかを判定するため、使用してはいけない。
「String」オブジェクトの「equals」メソッドを使用する。
実際の使い方は以下のよう。
String str = "ABC"
if ("ABC".equals(str)) {
System.out.println("一致");
} else {
System.out.println("不一致");
}
なお、「equals」メソッドの左辺がNULLの場合、例外「java.lang.NullPointerException」が発生する。
一方、「equals」メソッドの右辺がNULLの場合、falseとなる。
そのため、左辺に定数などのNULLにならない値を持ってくるのがベター。
// OK…変数「str」がNULLの場合、falseとなる
("ABC".equals(str))
// NG…変数「str」がNULLの場合、例外発生
(str.equals("ABC"))



コメント