JavaでStringがnullまたは空文字かを判別する方法をメモしておきます。
昔から使われている方法
Java6から使えるチェック方法です。注意点として、str == null
とstr.isEmpty()
の順番を間違わないようにしましょう。str.isEmpty()
を先に書くと、str
がnull
の場合にNullPointerException
が発生します。str == null
を先に書くと、str
がnull
の場合、str == null
はtrue
と評価されるため、式全体がtrue
となり、後者のstr.isEmpty()
は評価されずNullPointerException
は発生しません。
Javaでは、A && B
のような論理式において、A=false
とわかれば、B
がどうあれ結果はfalse
になるので、Bは評価されないのです。
外部ライブラリを使う方法
上の例では、org.apache.commons.lang.StringUtilsライブラリをインポートしてStringUtils.isEmpty()
メソッドを使っています。StringUtils.isEmpty()
は、文字列がnullか空文字かをチェックしてくれます。str=null
のときでも例外が発生しないのがいいですね。
Springフレームワークの場合、org.springframework.util.StringUtilsライブラリを使うと同じことができます。
おまけ:ブランク文字も合わせてチェックする方法
さきほどご紹介したorg.apache.commons.lang.StringUtilsやorg.springframework.util.StringUtilsといったライブラリのStringUtils.isBlank()
メソッドを使うと、nullか空文字かに加えて、ブランク文字(例. " "
)かどうかのチェックも簡単に行えます。
まとめ
JavaでStringがnullまたは空文字かを判別する方法でした。