StringUtils.isBlank()vs String.isEmpty()

问题

我遇到了一些具有以下内容的代码:

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)?


#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文档