Java的isEmpty和isBlank
阿新 • • 發佈:2020-12-29
在剛接觸java的時候,在字串判斷非空的時候,習慣性的使用equals來判空,有時候效果還不是很好,後來使用了StringUtils下的isEmpty和isBlank來判空,那這兩者又什麼區別呢?
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
public static boolean isNotEmpty(String str) {
return !isEmpty(str);
}
public static boolean isBlank(String str) {
int strLen;
if (str != null && (strLen = str.length()) != 0) {
for(int i = 0; i < strLen; ++i) {
if (!Character.isWhitespace(str.charAt(i))) {
return false;
}
}
return true;
} else {
return true;
}
}
public static boolean isNotBlank(String str) {
return !isBlank(str);
}
上面的程式碼為原始碼,從原始碼中我們得出結論----
StringUtils.isEmpty(String str) 判斷某字串是否為空,為空的標準是 str==null 或 str.length()==0
StringUtils.isBlank(String str) 判斷某字串是否為空或長度為 0 或由空白符 (whitespace) 構成
最後總結一下:
isEmpty()和isBlank()方法的區別就是是否過濾掉空白符,isEmpty()中有空格時會認為有資料,但是isBlank()會過濾掉空格。所以個人建議在做非空判斷時使用isNotBlank()方法。