私は次のようなコードを見つけました。
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
これは、機能的には次のものと同等です。
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
両者(org.Apache.commons.lang3.StringUtils.isBlank
とJava.lang.String.isEmpty
)は違いますか?
StringUtils.isBlank()
は、文字列の各文字が空白文字であること(または文字列が空であること、またはnullであること)を確認します。これは、文字列が空かどうかをチェックするのとはまったく異なります。
リンク先のドキュメントから:
文字列が空白、空( "")、またはnullかどうかを確認します。
StringUtils.isBlank(null) = true StringUtils.isBlank("") = true StringUtils.isBlank(" ") = true StringUtils.isBlank("bob") = false StringUtils.isBlank(" bob ") = false
比較のために StringUtils.isEmpty :
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
警告: Java.lang.String 。isBlank()および Java.lang.String 。isEmpty()では、true
に対してnull
が返されない点を除いて同じように機能します。
@arshajiiからの受け入れられた答えは全く正しいです。しかし、以下で言うことによってより明確になるだけで、
StringUtils.isBlank()
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
StringUtils.isEmpty
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
StringUtils isEmpty = 文字列isEmpty nullをチェックします。
StringUtils isBlank = StringUtils isEmpty +テキストに空白文字しか含まれていないかどうかをチェック.
詳しい調査に役立つリンク
StringUtils.isBlank()
はnullもチェックしますが、これは
String foo = getvalue("foo");
if (foo.isEmpty())
NullPointerException
がnullの場合、foo
をスローします。
StringUtils.isBlank
はまた空白だけでtrue
を返します。
isBlank(String str)
文字列が空白、空( "")、またはnullかどうかを確認します。
StringUtils.isBlank(foo)
はあなたのためにnullチェックを実行します。 foo.isEmpty()
を実行し、foo
がnullの場合、NullPointerExceptionが発生します。
StringUtils.isBlank()は、空白(単なる空白)およびNULL文字列についてもtrueを返します。実際にはCharシーケンスをトリミングしてからチェックを実行します。
StringUtils.isEmpty()は、Stringパラメータに文字シーケンスがない場合、またはStringパラメータがnullの場合にtrueを返します。違いは、Stringパラメータに空白のみが含まれている場合、isEmpty()がfalseを返すことです。空白は空でない状態と見なされます。
Java 11では、isBlank()が利用可能です
String str1 = "";
String str2 = " ";
Character ch = '\u0020';
String str3 =ch+" "+ch;
System.out.println(str1.isEmpty()); //true
System.out.println(str2.isEmpty()); //false
System.out.println(str3.isEmpty()); //false
System.out.println(str1.isBlank()); //true
System.out.println(str2.isBlank()); //true
System.out.println(str3.isBlank()); //true
public static boolean isEmpty(String ptext) {
return ptext == null || ptext.trim().length() == 0;
}
public static boolean isBlank(String ptext) {
return ptext == null || ptext.trim().length() == 0;
}
どちらもisBlankが空白文字を処理する方法と同じコードを持っています。
public static boolean isBlankString( String pString ) {
int strLength;
if( pString == null || (strLength = pString.length()) == 0)
return true;
for(int i=0; i < strLength; i++)
if(!Character.isWhitespace(pString.charAt(i)))
return false;
return false;
}
これは、「String isBlank()Method」のGoogleでの最高の結果だからです。
Java 11以上を使用している場合は、 String class isBlank() メソッドを使用できます。このメソッドは、Apache Commons StringUtilsクラスと同じことを行います。
私はこのメソッドの例について小さな記事を書きました。それを読んでください here 。