我们在对字符串进行操作的时候,需要经常判断该字符串是否为空。如果没有借助任何工具,我们一般是这样判断的:
if (null != source && !"".equals(source)) {
System.out.println("not empty");
}
但是如果每次都这样判断,会有些麻烦,所以很多jar包都对字符串判空做了封装。目前市面上主流的工具有:
spring中的StringUtils
jdbc中的StringUtils
apache common3中的StringUtils
不过spring中的StringUtils类只有isEmpty方法,没有isNotEmpty方法。
jdbc中的StringUtils类只有isNullOrEmpty方法,也没有isNotNullOrEmpty方法。
所以在这里强烈推荐一下apache common3中的StringUtils类,它里面包含了很多实用的判空方法:isEmpty、isBlank、isNotEmpty、isNotBlank等,还有其他字符串处理方法。
问题来了,isEmpty和isBlank有啥区别?
使用isEmpty方法判断:
StringUtils.isNotEmpty(null) = true
StringUtils.isNotEmpty("") = true
StringUtils.isNotEmpty(" ") = false
StringUtils.isNotEmpty("bob") = false
StringUtils.isNotEmpty(" bob ") = false
使用isBlank方法判断:
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
两个方法关键的区别在于这种" "空字符串的情况,isNotEmpty返回false,而isBlank返回true。