StringUtils.isBlank()vs String.isEmpty()
我遇到了一些代码,具有以下内容:
String foo = getvalue("foo"); if (StringUtils.isBlank(foo)) doStuff(); else doOtherStuff();
这似乎在function上等同于以下内容:
String foo = getvalue("foo"); if (foo.isEmpty()) doStuff(); else doOtherStuff();
两者之间的区别( org.apache.commons.lang3.StringUtils.isBlank
和java.lang.String.isEmpty
)?
StringUtils.isBlank()
检查string的每个字符是否为空白字符(或者该string是空的还是空的)。 这与仅仅检查string是否为空完全不同。
从链接的文档:
检查一个string是否为空白,空(“”)或空。
StringUtils.isBlank(null) = true StringUtils.isBlank("") = true StringUtils.isBlank(" ") = true StringUtils.isBlank("bob") = false StringUtils.isBlank(" bob ") = false
apache isEmpty = stringisEmpty检查+检查为空。
apache isBlank = apache isEmpty检查并检查文本是否只包含空白字符。
进一步调查的有用链接:
- apache isBlank文档
- apache是空的文档
- stringisEmpty文档
@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
StringUtils.isBlank()
也会检查null,而这个:
String foo = getvalue("foo"); if (foo.isEmpty())
如果foo
为null,将抛出一个NullPointerException
。
StringUtils.isBlank
也只为空白返回true
:
isBlank(String str)
检查一个string是否为空白,空(“”)或空。
StringUtils.isBlank(foo)
将为您执行空检查。 如果执行foo.isEmpty()
并且foo
为null,则会引发NullPointerException。
StringUtils.isBlank()为空白(只是空白)和空string返回true。 其实它修剪的序列,然后执行检查。
StringUtils.isEmpty()在String参数中没有charsequence或String参数为null时返回true。 不同的是,如果String参数只包含空白,则isEmpty()返回false。 它认为空白是非空的状态。
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; }