1. ホーム
  2. java

[解決済み】StringUtils.isBlank() vs String.isEmpty()

2022-01-18 14:46:54

質問

以下のようなコードに遭遇しました。

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.isBlankjava.lang.String.isEmpty )?

解決方法は?

StringUtils.isBlank() は、文字列の各文字が空白文字であるかどうか(あるいは文字列が空であるかどうか、NULLであるかどうか)をチェックします。これは、単に文字列が空であるかどうかをチェックするのとは全く異なる。

リンク先のドキュメントより。

Stringが空白、空("")または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 .

java.lang.String.isBlank() (Java 11以降)

java.lang.String.isEmpty()