Apache commons lang3包下的StringUtils工具类集成了很多日常开发中需要用的操作字符串的方法,其中判空是最为常用的。有isEmpty,isBlank,isNotEmpty,isNotBlank。StringUtils类在操作字符串时,即使操作的为null值也是安全的,不会报NullPointerException。这在日常的开发中可以省很多的逻辑判断。
isEmpy与isBlank的区别主要是:
isEmpy :
-
* StringUtils.isEmpty(null) = true
-
* StringUtils.isEmpty("") = true
-
* StringUtils.isEmpty(" ") = false
-
* StringUtils.isEmpty("bob") = false
-
* StringUtils.isEmpty(" bob ") = false
源码:
-
public static boolean isEmpty(final CharSequence cs) {
-
return cs == null || cs.length() == 0;
-
}
isBlank:
-
* StringUtils.isBlank(null) = true
-
* StringUtils.isBlank("") = true
-
* StringUtils.isBlank(" ") = true
-
* StringUtils.isBlank("bob") = false
-
* StringUtils.isBlank(" bob ") = false
-
public static boolean isBlank(final CharSequence cs) {
-
int strLen;
-
if (cs == null || (strLen = cs.length()) == 0) {
-
return true;
-
}
-
for (int i = 0; i < strLen; i++) {
-
if (Character.isWhitespace(cs.charAt(i)) == false) {
-
return false;
-
}
-
}
-
return true;
-
}
总结:isEmpty判空包括:null值,空串(""),不包括空白符。
isBlank判空包括:null值,空串(""),空白符。
StringUtils中还有其他很多的操作方法:转换,移除,替换,反转等。