1、 isEmpty方法和isBlank方法的区别
isEmpty()与isNotEmpty() 相反
isEmpty 没有忽略空格参数,是以是否为空和是否存在为判断依据。
public static boolean isEmpty(String str) {
//判断某字符串是否为空,为空的标准是str==null或str.length()==0
return str == null || str.length() == 0;
}
示例:
isEmpty与isNotEmpty 结果相反
判断某字符串是否为空,为空的标准是str==null或str.length()==0
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false //注意在StringUtils中空格作非空处理
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
isBlank() 与isNotBlank() 相反
isBlank 是在 isEmpty 的基础上进行了为空(字符串都为空格、制表符、tab 的情况)的判断。(一般更为常用)
public static boolean isBlank(String str) {
int strLen;
//判断某字符串是否为空或长度为0或由空白符(whitespace)构成
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;
}
}
示例:
isBlank与isNotBlank结果相反
判断某字符串是否为空或长度为0或由空白符(whitespace)构成
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车符StringUtils.isBlank()均识为空白符
StringUtils.isBlank("\b") = false //"\b"为单词边界符
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false