【Java】Java中isBlank与isEmpty的区别

Java中isBlank与isEmpty的区别


1.isEmpty

 

  • isEmpty(null)------true
  • isEmpty("")------true
  • isEmpty(" ")------false
  • isEmpty("aa")----false

2.isBlank

  • isBlank(null)------true
  • isBlank(" ")------true
  • isBlank(" ")------true
  • isBlank("      ")------true
  • isBlank("\t \n \f \r")------true      //制表符、换行符、换页符和回车符
  • isBlank("qqqq")------false

3.isNotEmpty和isNotBlank

isNotEmpty("str")==true 就是 isEmpty("str")==false的时候
相对应的isNotBlank("str")==true 就是 isBlank("str")==false的时候

1、空格参数

isEmpty没有忽略空格参数,是以是否为空和是否存在为判断依据。而isBlank忽略了空格参数。

2、层次

isBlank 是在isEmpty的基础上进行了为空(字符串都为空格、制表符、tab 的情况)的判断。因此isBlank层次更高。

3、使用频率

isBlank的使用频率更高,而isEmpty的使用频率更高。

4.源代码


isEmpty()

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

isBlank()

public static boolean isBlank(String str) {
    int strLen;
    if (str != null && (strLen = str.length()) != 0) {
        for(int i = 0; i < strLen; ++i) {// 判断字符是否为空格、制表符、tab
            if (!Character.isWhitespace(str.charAt(i))) {
                return false;
            }
        }
        return true;
    } else {
        return true;
    }
}

5. 示例


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

StringUntils.isEmpty(null)=true

StringUntils.isEmpty("")=true

StringUntils.isEmpty(" ")=false

StringUntils.isEmpty("demo")=false

StringUntils.isEmpty(" demo ")=false

 

isBlank判断某字符串是否为空或长度为0或由空白符构成

StringUtils.isBlank(null)=true

StringUtils.isBlank("")=true

StringUtils.isBlank(" ")=true

StringUtils.isBlank("\t \n \f \r")=true //对于制表符、换行符、换页符合回车符

StringUtils.isBlank()//都识别为空白符

StringUtils.isBlank("\b")=false

StringUtils.isBlank("demo")=false

StringUtils.isBlank(" demo ")=false

 

 

 

你可能感兴趣的:(后端开发与中间件技术)