Java

【Java】Stringがnullまたは空文字かを判別する2つの方法

JavaでStringがnullまたは空文字かを判別する方法をメモしておきます。

昔から使われている方法

Java6から使えるチェック方法です。注意点として、str == nullstr.isEmpty()の順番を間違わないようにしましょう。str.isEmpty()を先に書くと、strnullの場合にNullPointerExceptionが発生します。str == nullを先に書くと、strnullの場合、str == nulltrueと評価されるため、式全体が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.StringUtilsorg.springframework.util.StringUtilsといったライブラリのStringUtils.isBlank()メソッドを使うと、nullか空文字かに加えて、ブランク文字(例. " ")かどうかのチェックも簡単に行えます。

まとめ

JavaでStringがnullまたは空文字かを判別する方法でした。

参考リンク

-Java

© 2024 Reasonable Code