首先isNotEmpty和isNotBank都是判断字符是否为空,它是属于org.apache.commons.lang包下的(当然你可以可以采用其他包下的,或则自己造轮子)
这里再说下俩者的区别,isNotEmpty是当字符对象null或则是""时判定字符对象为空,isNotBlank也是当字符对象null或则是""时判定字符对象为空,它还多一种情况判断,当字符对象为” “这种空白字符串(只有空格)也是判定为空
isNotEmpty源码
public static boolean isNotEmpty(String str) {
return !isEmpty(str);
}
// 判断字符是否为空,即是否为null或""
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
isNotBlank源码
public static boolean isNotBlank(String str) {
return !isBlank(str);
}
public static boolean isBlank(String str) {
int strLen;
// 若字符串为null或则字符串为"",则判断为空,否则继续判断是否为空白字符串
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;
}
}
小结:
1 首先要知道isEmpty和isNotBank都是对字符为空的一种判定,而isNotBlank除了null,“”还多一个种判定,会判断字符是否为空白字符
2 一般来说业务中都应该优先考虑isNotBank,除非你非常肯定不会传” “这种空白字符,或则” “这种空白字符不会影响你的业务处理
3 要理解String的底层是通过char value[]数组实现,其实我们用得比较多的ArrayList底层也是数组
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/127271.html