Javaの文字列が空文字か確認するサンプルです。
確認環境 ・Java 8 ・Apache Commons Lang 3.12 (Java 8+) |
目次
サンプル | 空文字を確認する(isEmpty) |
空文字とnullを確認(StringUtilsのisEmpty) | |
空文字とnullと半角空白を確認(StringUtilsのisBlank) | |
StringUtilsのライブラリを取得する方法 |
空文字を確認する(isEmpty)
public boolean isEmpty() |
- 文字列が空文字(からもじ)の場合trueを返し、それ以外はfalseを返します。
- 空文字とは、長さが0の文字列です。
- 値がnullの場合は、NullPointerExceptionが発生します。
- Stringクラスのメソッドです。
package test1;
public class Test1 {
public static void main(String[] args) {
// 空文字のとき
String a = "";
if (a.isEmpty()) {
System.out.println("true"); // trueが出力される
}
// 空文字でない
String b = "あいう えお";
if (b.isEmpty()) {
System.out.println("true");
}else {
System.out.println("false"); // falseが出力される
}
// nullのとき
String c = null;
if (c.isEmpty()) { // NullPointerExceptionの例外が発生
System.out.println("true");
}
}
}
値がNullの場合は、NullPointerException例外が発生するので注意が必要です。
以下はJava8 API仕様のisEmptyメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#isEmpty--
空文字とnullを確認(StringUtilsのisEmpty)
public static boolean isEmpty(CharSequence cs) |
- StringUtilsクラスは、Apache Commons Langのライブラリです。
- 文字列が空文字またはnullの場合はtrueを返し、それ以外はfalseを返します。
- 値がnullの場合でもNullPointerExceptionが発生しません。上記のisEmptyメソッドとの違いです。
package test1;
import org.apache.commons.lang3.StringUtils;
public class Test1 {
public static void main(String[] args) {
// 空文字のとき
String a = "";
if (StringUtils.isEmpty(a)) {
System.out.println("true"); // trueが出力される
}
// 空文字でない
String b = "あいう えお";
if (StringUtils.isEmpty(b)) {
System.out.println("true");
}else {
System.out.println("false"); // falseが出力される
}
// nullのとき
String c = null;
if (StringUtils.isEmpty(c)) {
System.out.println("true"); // trueが出力される※違いの箇所
}
}
}
2行目は、StringUtilsをimportしています。
StringUtilsクラスのisEmptyメソッドは、値がNullでもNullポインタの例外は発生しません。
trueを返します。
空文字とnullと半角空白を確認(StringUtilsのisBlank)
public static boolean isBlank(final CharSequence cs) |
- StringUtilsクラスは、Apache Commons Langのライブラリです。
- 文字列が空文字またはnullまたは半角スペースの場合はtrueを返し、それ以外はfalseを返します。半角スペースが上記のisEmptyメソッドと異なります。
- 値がnullの場合でもNullPointerExceptionが発生しません。
package test1;
import org.apache.commons.lang3.StringUtils;
public class Test1 {
public static void main(String[] args) {
// 空文字のとき
String a = "";
if (StringUtils.isBlank(a)) {
System.out.println("true"); // trueが出力される
}
// 空文字でない
String b = "あいう えお";
if (StringUtils.isBlank(b)) {
System.out.println("true");
}else {
System.out.println("false"); //falseが出力される
}
// nullのとき
String c = null;
if (StringUtils.isBlank(c)) {
System.out.println("true"); // trueが出力される※違いの箇所
}
// 半角スペースのとき
String d = " ";
if (StringUtils.isBlank(d)) {
System.out.println("true"); // trueが出力される※違いの箇所
}
}
}
StringUtilsのライブラリを取得する方法
StringUtilsのライブラリは、Apache Commons Langのダウンロードページにあります。
http://commons.apache.org/proper/commons-lang/download_lang.cgi
上記リンクからzipを取得して展開しjar(例:commons-lang3-3.12.0.jar)をビルドパスに追加します。
Eclipse jarファイルをクラスパスに設定する方法
関連の記事
Java 文字列の値を比較(==ではなくequalsを使用)
Java equalsでnullまたは空文字を比較するサンプル