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;
}
}
結論
通過以上代碼對比我們可以看出:
1.isEmpty 沒有忽略空格參數,是以是否爲空和是否存在爲判斷依據。
2.isBlank 是在 isEmpty 的基礎上進行了爲空(字符串都爲空格、製表符、tab 的情況)的判斷。(一般更爲常用)
大家可以看下面的例子去體會一下。
StringUtils.isEmpty("yyy") = false
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isBlank("yyy") = false
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true