Javaで入力チェックなどでよく使用されるStringUtilsクラスのisEmptyとisBlankメソッドの違いについてメモしておきます。StringUtilsクラスはapacheから提供されているクラスとなります。「commons-lang3-3.12.0.jar」などがプロジェクトに適用されていれば利用可能です。
結論から書くとisBlankでは半角スペース” “や全角スペース” ”の場合でもtrueとなり、isEmptyではfalseになります。
使い分けは半角スペースや全角スペースも考慮(未入力と同等と見なす)してチェックする場合はisBlank、考慮不要ならisEmptyのように判断すれば良いかと思います。通常は必須チェックしてるのに半角スペースなどはOKにするケースは稀だと思うのでisBlankをデフォルトで使用するのがベターな認識でしょうか。
isEmptyとisBlankの比較
メソッド/値 null ""(空文字、ブランク) " "(半角スペース) " "(全角スペース) "ABC"
isEmpty true true false false false
isBlank true true true true false
isEmptyの使用例
Javaソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import org.apache.commons.lang3.StringUtils; public class IsEmptySample { public static void main(String[] args) { String str1 = null; String str2 = ""; String str3 = " "; String str4 = " "; String str5 = "ABC"; System.out.println("StringUtils.isEmpty(str1):" + StringUtils.isEmpty(str1)); System.out.println("StringUtils.isEmpty(str2):" + StringUtils.isEmpty(str2)); System.out.println("StringUtils.isEmpty(str3):" + StringUtils.isEmpty(str3)); System.out.println("StringUtils.isEmpty(str4):" + StringUtils.isEmpty(str4)); System.out.println("StringUtils.isEmpty(str5):" + StringUtils.isEmpty(str5)); } } |
コンソール
isBlankの使用例
Javaソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import org.apache.commons.lang3.StringUtils; public class IsEmptySample { public static void main(String[] args) { String str1 = null; String str2 = ""; String str3 = " "; String str4 = " "; String str5 = "ABC"; System.out.println("StringUtils.isEmpty(str1):" + StringUtils.isBlank(str1)); System.out.println("StringUtils.isEmpty(str2):" + StringUtils.isBlank(str2)); System.out.println("StringUtils.isEmpty(str3):" + StringUtils.isBlank(str3)); System.out.println("StringUtils.isEmpty(str4):" + StringUtils.isBlank(str4)); System.out.println("StringUtils.isEmpty(str5):" + StringUtils.isBlank(str5)); } } |
コンソール