Apache commons lang3包下的StringUtils工具类集成了很多日常开发中需要用的操作字符串的方法,其中判空是最为常用的。有isEmpty,isBlank,isNotEmpty,isNotBlank。StringUtils类在操作字符串时,即使操作的为null值也是安全的,不会报NullPointerException。这在日常的开发中可以省很多的逻辑判断。

    isEmpy与isBlank的区别主要是:

   isEmpy :

 
  1. * StringUtils.isEmpty(null) = true

  2. * StringUtils.isEmpty("") = true

  3. * StringUtils.isEmpty(" ") = false

  4. * StringUtils.isEmpty("bob") = false

  5. * StringUtils.isEmpty(" bob ") = false

   源码:

 
  1. public static boolean isEmpty(final CharSequence cs) {

  2. return cs == null || cs.length() == 0;

  3. }

  isBlank:

 
  1. * StringUtils.isBlank(null) = true

  2. * StringUtils.isBlank("") = true

  3. * StringUtils.isBlank(" ") = true

  4. * StringUtils.isBlank("bob") = false

  5. * StringUtils.isBlank(" bob ") = false

 
  1. public static boolean isBlank(final CharSequence cs) {

  2. int strLen;

  3. if (cs == null || (strLen = cs.length()) == 0) {

  4. return true;

  5. }

  6. for (int i = 0; i < strLen; i++) {

  7. if (Character.isWhitespace(cs.charAt(i)) == false) {

  8. return false;

  9. }

  10. }

  11. return true;

  12. }

总结:isEmpty判空包括:null值,空串(""),不包括空白符。

           isBlank判空包括:null值,空串(""),空白符。

StringUtils中还有其他很多的操作方法:转换,移除,替换,反转等。