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