0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

str.equals("")がダメな理由

Last updated at Posted at 2025-11-13

Javaで文字列型の変数が特定の文字列と等しいか比べるには「==」ではなくequalsを使う。

String型は参照渡しをするので
(※Javaは参照渡しをするわけではなく、参照値の値渡しをするらしい。)
変数の中身は参照先のアドレスであり、特定の文字列に対して==で比較してもtrueにはならない。

そのため、持っている情報が意味的に同じかを比較するにはObjectクラスにあるeaqualsメソッドを使う。

しかし、使い方として一つ注意点がある。

仮にString型のstr変数があったとして、

Java
str.equals("文字列");

のような使い方はNGらしい。

strの中身がnull(どこも参照していない)である場合、実行時に例外が発生してしまうからだ。(NullPointerException、通称ぬるぽ)

それを防ぐ手段として、str.equals("文字列")ではなく、

Java
"文字列".equals(str);

という書き方が推奨される。

空文字チェックしたい場合は

Java
"".equals(str)

となる。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?