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

String工具类之“四个判空方式”StringUtils.isNotBlank和StringUtils.isEmpty和StringUtils.isBlank和StringUtils.isNotEmpty的更多相关文章

  1. StringUtils工具类常用方法汇总1(判空、转换、移除、替换、反转)

      Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便.最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的方 ...

  2. StringUtils工具类常用方法汇总:判空、转换、移除、替换、反转。

    Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便.最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的方法总 ...

  3. String工具类

    String工具类 问题描述 MAVEN依赖 代码成果 问题描述 很多时候我们需要对字符串进行很多固定的操作,而这些操作在JDK/JRE中又没有预置,于是我们想到了apache-commons组件,但 ...

  4. 实用的 集合工具类 和 String工具类

    集合工具类:CollectionUtil method: 1.isNotEmpty() 不为空 2.isEmpty() 为空 举例:map集合         Map<String,String ...

  5. 通过CollectionUtils工具类判断集合是否为空,通过StringUtils工具类判断字符串是否为空

    通过CollectionUtils工具类判断集合是否为空 先引入CollectionUtils工具类: import org.apache.commons.collections4.Collectio ...

  6. [分享]一个String工具类,也许你的项目中会用得到

    每次做项目都会遇到字符串的处理,每次都会去写一个StringUtil,完成一些功能. 但其实每次要的功能都差不多: 1.判断类(包括NULL和空串.是否是空白字符串等) 2.默认值 3.去空白(tri ...

  7. [课本]JDBC课程6--使用JDBC的DAO模块化--完成数据库的增删查改_工具类JDBCTools四个(Preparedstatement)功能模块的敲定版

    (课本P273-任务九) /**DAO: Data Access Object * 为什么用: 实现功能的模块化,更有利于代码的维护和升级 * 是什么: 访问数据信息的类,包含对数据的CRUD(cre ...

  8. 并发工具类(四)线程间的交换数据 Exchanger

    前言   JDK中为了处理线程之间的同步问题,除了提供锁机制之外,还提供了几个非常有用的并发工具类:CountDownLatch.CyclicBarrier.Semphore.Exchanger.Ph ...

  9. Java并发工具类(四):线程间交换数据的Exchanger

    简介 Exchanger(交换者)是一个用于线程间协作的工具类.Exchanger用于进行线程间的数据交换.它提供一个同步点,在这个同步点两个线程可以交换彼此的数据.这两个线程通过exchange方法 ...

随机推荐

  1. [系统安全] 十六.PE文件逆向基础知识(PE解析、PE编辑工具和PE修改)

    [系统安全] 十六.PE文件逆向基础知识(PE解析.PE编辑工具和PE修改) 文章来源:https://masterxsec.github.io/2017/05/02/PE%E6%96%87%E4%B ...

  2. 【C#基础概念】枚举 (enum详解)

    我们重点来讲解 简单枚举和标志枚举的用法和区别 继承 Object-> ValueType ->Enum Object-> ValueType ->struct 包括int f ...

  3. 深度剖析数仓CN增量备份技术

    摘要:为了解决Roach的性能问题,提出了CN增量备份手段,从而达到进一步优化RPO目的. 本文分享自华为云社区<GaussDB(DWS)备份容灾之CN增量备份>,作者: zxy_db . ...

  4. WIN10:删除开始菜单栏中的文件夹

    C:\ProgramData\Microsoft\Windows\Start Menu\Programs,找到想删除的文件夹删除即可 其中ProgramData为隐藏文件夹,显示方式见下

  5. 【python画圆】pip安装库时出现Read timed out.解决办法

    昨天第一次用python画圆,当时并没有安装numpy库(导入数据包)和matplotlib库(导入图形包),于是尝试用pip安装库 首先,我先更新了pip,如下图: 顺便附上成功截图: 然后安装nu ...

  6. LeetCode-061-旋转链表

    旋转链表 题目描述:给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置. 示例说明请见LeetCode官网. 来源:力扣(LeetCode) 链接:https://leet ...

  7. mysql中创建函数时报错信息

    报错信息如下 ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its ...

  8. PHP实现二维数组(或多维数组)转换成一维数组

    1 array_reduce函数法 用array_reduce()函数是较为快捷的方法: $result = array_reduce($user, function ($result, $value ...

  9. web Javascript360°全景实现

    360 全景浏览是一种性价比很高的虚拟现实解决方案,给人一种全新的浏览体验,让你足不出户就能身临其境地感受到现场的环境.该技术被广泛地应用在房产.酒店.家居等领域. 下面我们使用三种方法讨论一个 36 ...

  10. python程序的三种执行结构

    一.分支结构:根据条件判断的真假去执行不同分支对应的子代码 1.1 if判定 完整语法如下: if 条件1: #条件可以是任意表达式,如果条件1为True,则依次执行代码. 代码1 代码2 ... e ...