Javaで文字列型の変数が特定の文字列と等しいか比べるには「==」ではなくequalsを使う。
String型は参照渡しをするので、
(※Javaは参照渡しをするわけではなく、参照値の値渡しをするらしい。)
変数の中身は参照先のアドレスであり、特定の文字列に対して==で比較してもtrueにはならない。
そのため、持っている情報が意味的に同じかを比較するにはObjectクラスにあるeaqualsメソッドを使う。
しかし、使い方として一つ注意点がある。
仮にString型のstr変数があったとして、
Java
str.equals("文字列");
のような使い方はNGらしい。
strの中身がnull(どこも参照していない)である場合、実行時に例外が発生してしまうからだ。(NullPointerException、通称ぬるぽ)
それを防ぐ手段として、str.equals("文字列")ではなく、
Java
"文字列".equals(str);
という書き方が推奨される。
空文字チェックしたい場合は
Java
"".equals(str)
となる。