Java null または空文字列かどうかをチェックする方法 - クラス String

JavaでStringがnullまたは空文字列かどうかをチェックする方法の紹介です。

Java null または空文字列かどうかをチェックする方法

Javaに限らず、nullといえば、値の定義がない状態のこと。Javaではnullの変数に対して参照しようとすると「NullPointerException」が発生します。

予期せぬ NullPointerException の発生はアプリケーションの停止を招きます。事前にnullチェックをして回避しましょう。

値の定義がない状態(null)と、値がない状態(空文字列)は同じではありません。nullは参照できませんが、空文字列は参照できます。間違えやすいので注意が必要ですが、アプリケーションを作る上では、変数に何か値があるのかないのかを知りたいだけなので、ここでは一緒にチェックしてしまうことにします。

ここでは JavaでStringがnullまたは空文字列かどうかをチェックする方法 を紹介します。


String が null または空文字列かどうかをチェックする方法

では、具体的に Java で String が null または空文字列かどうかをチェックするコードを紹介します。

以下のメソッドでは、String が null または空文字列の場合 true を返します。


/**
 * 指定された String が null または空文字列かどうかを返します。
 *
 * @param value チェックする String
 * @return null または空文字列かどうか。null または空文字列なら true 、それ以外なら false 。
 */
public static boolean isEmpty(String value) {
  if ( value == null || value.length() == 0 )
    return true;
  else
    return false;
}

以下のテストを実行すると・・・


System.out.println(StringUtils.isEmpty(null));
System.out.println(StringUtils.isEmpty("saka-en"));
System.out.println(StringUtils.isEmpty(""));

結果はこうなります。


true
false
true

逆に、以下のメソッドでは、String に null または空文字列以外の値がある場合 true を返します。


/**
 * 指定された String に文字列があるかどうかを返します。
 *
 * @param value 文字列があるかどうかをチェックする String
 * @return 文字列があるかどうか。null または空文字以外なら true 、null または空文字列なら false 。
 */
public static boolean isNotEmpty(String value) {
  if ( value != null && value.length() > 0 )
    return true;
  else
    return false;
} 

以下のテストを実行すると・・・


System.out.println(StringUtils.isNotEmpty(null));
System.out.println(StringUtils.isNotEmpty("saka-en"));
System.out.println(StringUtils.isNotEmpty(""));

結果はこうなります。


false
true
false

まとめ

JavaでStringがnullまたは空文字列かどうかをチェックする方法を紹介しました。

空文字のチェックだけならStringのisEmptyメソッドを使えばいいけど、nullだった場合にはNullPointerExceptionになるんで注意が必要です。

これはエラーになる。


String test = null;
  if ( test.isEmpty() )

これはエラーにならない。


String test = "";
if ( test.isEmpty() )

org.apache.commons.lang3.StringUtilsをインポートして、StringUtils.isEmpty()メソッドを使う方法もありますが、ここで紹介したコードを使うなら不要かな。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。