我遇到了一些代码,其中包含以下内容:
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
)有什么区别吗?
发布于 2017-04-01 05:42:04
来自@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
发布于 2014-05-02 08:53:04
StringUtils.isBlank()
还将检查是否为null,而如下所示:
String foo = getvalue("foo");
if (foo.isEmpty())
如果foo
为null,则将引发NullPointerException
。
发布于 2014-05-02 08:53:13
StringUtils.isBlank(foo)
将为您执行null检查。如果执行foo.isEmpty()
并且foo
为null,则将引发NullPointerException。
https://stackoverflow.com/questions/23419087
复制相似问题