我遇到了一些代码,有以下:

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)之间有区别吗?


当前回答

StringUtils.isBlank()也会检查null,然而:

String foo = getvalue("foo");
if (foo.isEmpty())

如果foo为空,将抛出NullPointerException。

其他回答

public static boolean isEmpty(String ptext) {
 return ptext == null || ptext.trim().length() == 0;
}

public static boolean isBlank(String ptext) {
 return ptext == null || ptext.trim().length() == 0;
}

两者都有相同的代码如何isBlank处理空白可能你指的是isBlankString,它有处理空白的代码。

public static boolean isBlankString( String pString ) {
 int strLength;
 if( pString == null || (strLength = pString.length()) == 0)
 return true;
 for(int i=0; i < strLength; i++)
 if(!Character.isWhitespace(pString.charAt(i)))
 return false;
 return false;
}

底线是:

isEmpty take " " as a character but isBlank not. Rest both are same.

StringUtils.isBlank()检查字符串中的每个字符是否为空白字符(或者字符串为空或为空)。这与仅仅检查字符串是否为空完全不同。

从链接的文档:

检查字符串是否为空白、空("")或空。 StringUtils.isBlank(null) = true StringUtils.isBlank("") = true stringutil的。isBlank(" ") = true StringUtils.isBlank("bob") = false stringutil的。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()中,除了它们不为null返回true外,它们的工作原理是一样的。

Java .lang. string . isblank()(自Java 11起)

朗。java字符串isEmpty()。

StringUtils.isBlank(foo)将为您执行空检查。如果你执行foo. isempty()并且foo为空,你将引发一个NullPointerException。

StringUtils.isBlank()对于空格(只是空格)和null String也返回true。实际上,它修饰Char序列,然后执行检查。

当String参数中没有charsequence或String参数为null时,StringUtils.isEmpty()返回true。不同的是,如果字符串参数只包含whiltespaces, isEmpty()返回false。它认为空白是一种非空状态。