StringUtils.isBlank和StringUtils.isEmpty的区别

StringUtils.isEmpty(String str)

源码

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

所以,isEmpty的作用为:

判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0

  • StringUtils.isEmpty(null) = true
  • StringUtils.isEmpty("") = true
  • StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理
  • StringUtils.isEmpty(" ") = false

StringUtils.isBlank(String str)

源码
可以看到,isBlank是对isEmpty的增强

public static boolean isBlank(String str) {
        int strLen;
        if (str == null || (strLen = str.length()) == 0) {
            return true;
        }
        for (int i = 0; i < strLen; i++) {
            if ((Character.isWhitespace(str.charAt(i)) == false)) {
                return false;
            }
        }
        return true;
    }

isWhiteSpace()指定字符是否含有空白字符,空白字符包括:空格,换行符,tab键。

所以,isBlank的作用为:

  • StringUtils.isBlank(null) = true
  • StringUtils.isBlank("") = true
  • StringUtils.isBlank(" ") = true
  • StringUtils.isBlank(" ") = true
  • StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车也判为空

代码书写世界,吉他演奏生活