NSA*_*NSA 184 java string string-utils
我遇到了一些具有以下内容的代码:
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)之间有区别吗?
ars*_*jii 324
StringUtils.isBlank()检查字符串的每个字符是否为空白字符(或者字符串为空或者为空).这与检查字符串是否为空完全不同.
从链接的文档:
检查String是否是空格,空("")或null.
Run Code Online (Sandbox Code Playgroud)StringUtils.isBlank(null) = true StringUtils.isBlank("") = true StringUtils.isBlank(" ") = true StringUtils.isBlank("bob") = false StringUtils.isBlank(" bob ") = false
nil*_*esh 132
@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
yal*_*lam 39
StringUtils isEmpty = String isEmpty检查+检查null.
StringUtils isBlank = StringUtils isEmpty检查+检查文本是否仅包含空格字符.
进一步调查的有用链接:
chu*_*hut 14
StringUtils.isBlank() 也将检查null,而这:
String foo = getvalue("foo");
if (foo.isEmpty())
将抛出一个NullPointerExceptionif foo为null.
小智 6
isBlank() 和 isEmpty() 之间的唯一区别是:
StringUtils.isBlank(" ")       = true //compared string value has space and considered as blank
StringUtils.isEmpty(" ")       = false //compared string value has space and not considered as empty
小智 5
StringUtils.isBlank() 为空白(仅空格)和空字符串返回 true。实际上它修剪 Char 序列,然后执行检查。
StringUtils.isEmpty() 在 String 参数中没有字符序列或 String 参数为空时返回 true。不同之处在于,如果 String 参数仅包含空格,则 isEmpty() 返回 false。它将空格视为非空状态。