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.isBlankjava.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; }