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"))
コメント