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()这个非空判读比较多点,因为这个较为完整,各种意义上的空都屏蔽掉了

 

posted @ 2021-02-26 10:10  骚哥  阅读(2136)  评论(0编辑  收藏  举报