String工具类之“四个判空方式”StringUtils.isNotBlank和StringUtils.isEmpty和StringUtils.isBlank和StringUtils.isNotEmpty
一.判断str字符串都不为空==>StringUtils.isNotBlank(String str);
1 /** 2 * <p>检查一个字符串是否非空(""),非空,而不是空白.</p> 3 * 4 * 案例 5 * <pre> 6 * StringUtils.isNotBlank(null) = false 7 * StringUtils.isNotBlank("") = false 8 * StringUtils.isNotBlank(" ") = false 9 * StringUtils.isNotBlank("bob") = true 10 * StringUtils.isNotBlank(" bob ") = true 11 * </pre> 12 * 13 * @param str 要检查str字符串,可以为null 14 * @return <code>true</code> 如果字符串 15 * 不是空与不是null与不是空格 16 * 17 * 总结 18 * 只要有字符都返回true 19 * 对于制表符、换行符、换页符和回车符StringUtils.isBlank()均识为空白符 20 * StringUtils.isBlank("\t \n \f \r") -> false 21 * 判断参数是否不为空. 22 * 1.如果不为空返回true。 23 * 2.如果为空返回false。 24 * @since 2.0 25 */ 26 public static boolean isNotBlank(String str) { 27 return !StringUtils.isBlank(str); 28 }
二.判断字符串是否只等于null或空("")==>StringUtils.isEmpty(String str);
1 /** 2 * <p>检查一个字符串是否为空("")或null</p> 3 * 4 * 案例 5 * <pre> 6 * StringUtils.isEmpty(null) = true 7 * StringUtils.isEmpty("") = true 8 * StringUtils.isEmpty(" ") = false 9 * StringUtils.isEmpty("bob") = false 10 * StringUtils.isEmpty(" bob ") = false 11 * </pre> 12 * 13 * <p>注意:本方法在version 2.0版本中改变了 14 * 他不在修剪字符串了 15 * 该功能在isBlank()中可用。</p> 16 * 17 * @param str 要检查字符串,可能为null 18 * @return <code>true</code>如果字符串为空或null 19 * 20 * 总结: 21 * 除了null和空("")以外其他全部为false 22 * 包括空格,制表等都为false 23 */ 24 public static boolean isEmpty(String str) { 25 return str == null || str.length() == 0; 26 }
三.判断为空都返回true ==> StringUtils.isBlank(String str);
1 /** 2 * <p>检查如果一个字符串是否空格,空("")或null.</p> 3 * 4 * <pre> 5 * StringUtils.isBlank(null) = true 6 * StringUtils.isBlank("") = true 7 * StringUtils.isBlank(" ") = true 8 * StringUtils.isBlank("bob") = false 9 * StringUtils.isBlank(" bob ") = false 10 * </pre> 11 * 12 * @param str 要检查字符串,可以为null 13 * @return <code>true</code>判断字符串是null,空(""),或空白 14 * 15 * 总结: 16 * 只要是空都为true 17 * 对于制表符、换行符、换页符和回车符StringUtils.isBlank()均识为空白符 18 * StringUtils.isBlank("\t \n \f \r") -> true 19 * @since 2.0 20 */ 21 public static boolean isBlank(String str) { 22 int strLen; 23 // 判断 == null 或 长度 == 0 24 if (str == null || (strLen = str.length()) == 0) { 25 //符合上面的条件说明字符串都没有参数 26 return true; 27 } 28 for (int i = 0; i < strLen; i++) { 29 // 判断字符是为空格 == false 就是只要空格 30 if ((Character.isWhitespace(str.charAt(i)) == false)) { 31 // 到这里说明该字符串有出了空格以外的其他字符,返回false 32 return false; 33 } 34 } 35 return true; 36 }
四.只有null和空("")会返回false ==>StringUtils.isNotEmpty(String str)
1 /** 2 * <p>检查一个字符串不为空("")与不为null</p> 3 * 4 * 案例 5 * <pre> 6 * StringUtils.isNotEmpty(null) = false 7 * StringUtils.isNotEmpty("") = false 8 * StringUtils.isNotEmpty(" ") = true 9 * StringUtils.isNotEmpty("bob") = true 10 * StringUtils.isNotEmpty(" bob ") = true 11 * </pre> 12 * 13 * @param str 要检查字符串,可以为null 14 * @return <code>true</code> 如果字符串不是空与不是null 15 * 16 * 总结: 17 * 只有null和空("")会返回false 18 * 对于制表符、换行符、换页符和回车符StringUtils.isBlank()均识为空白符 19 * StringUtils.isBlank("\t \n \f \r") -> true 20 * 直接非判断是空方法了 21 */ 22 public static boolean isNotEmpty(String str) { 23 return !StringUtils.isEmpty(str); 24 }
最后总结
个人感觉这四个判空的区别还是有的,可以根据自己遇到的情况来选择不同的方法
但一般用isNotBlank()这个非空判读比较多点,因为这个较为完整,各种意义上的空都屏蔽掉了
* 博客文章部分截图及内容来自于学习的书本及相应培训课程,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。
* 备注:王子威
* 我的网易邮箱:wzw_1314_520@163.com