问题
我遇到了一些具有以下内容的代码:
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
)?
#1 热门回答(197 赞)
StringUtils.isBlank()
检查字符串的每个字符是否为空白字符(或者字符串为空或者为空)。这与检查字符串是否为空完全不同。
从链接的文档:
检查String是否为空格,空("")或null。 StringUtils.isBlank(null)= true
StringUtils.isBlank("")= true
StringUtils.isBlank("")= true
StringUtils.isBlank("bob")= false
StringUtils.isBlank("bob")= false
#2 热门回答(81 赞)
@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
#3 热门回答(32 赞)
apache isEmpty=String isEmptychecks检查为null。
apache isBlank=apache isEmptychecks检查文本是否仅包含空格字符。
进一步调查的有用链接:
- apache isBlank文档
- apache isEmpty文档
- String isEmpty文档