次のようなコードに遭遇しました。
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
2つの(とjava.lang.String.isEmpty
)の間には違いがありますか?
ベストアンサー1
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.Stringtrue
.isEmpty() は、を返さないことを除いて同じように動作しますnull
。
java.lang.String.isBlank()
(Java 11 以降)