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()这个非空判读比较多点,因为这个较为完整,各种意义上的空都屏蔽掉了
String工具类之“四个判空方式”StringUtils.isNotBlank和StringUtils.isEmpty和StringUtils.isBlank和StringUtils.isNotEmpty的更多相关文章
- StringUtils工具类常用方法汇总1(判空、转换、移除、替换、反转)
Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便.最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的方 ...
- StringUtils工具类常用方法汇总:判空、转换、移除、替换、反转。
Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便.最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的方法总 ...
- String工具类
String工具类 问题描述 MAVEN依赖 代码成果 问题描述 很多时候我们需要对字符串进行很多固定的操作,而这些操作在JDK/JRE中又没有预置,于是我们想到了apache-commons组件,但 ...
- 实用的 集合工具类 和 String工具类
集合工具类:CollectionUtil method: 1.isNotEmpty() 不为空 2.isEmpty() 为空 举例:map集合 Map<String,String ...
- 通过CollectionUtils工具类判断集合是否为空,通过StringUtils工具类判断字符串是否为空
通过CollectionUtils工具类判断集合是否为空 先引入CollectionUtils工具类: import org.apache.commons.collections4.Collectio ...
- [分享]一个String工具类,也许你的项目中会用得到
每次做项目都会遇到字符串的处理,每次都会去写一个StringUtil,完成一些功能. 但其实每次要的功能都差不多: 1.判断类(包括NULL和空串.是否是空白字符串等) 2.默认值 3.去空白(tri ...
- [课本]JDBC课程6--使用JDBC的DAO模块化--完成数据库的增删查改_工具类JDBCTools四个(Preparedstatement)功能模块的敲定版
(课本P273-任务九) /**DAO: Data Access Object * 为什么用: 实现功能的模块化,更有利于代码的维护和升级 * 是什么: 访问数据信息的类,包含对数据的CRUD(cre ...
- 并发工具类(四)线程间的交换数据 Exchanger
前言 JDK中为了处理线程之间的同步问题,除了提供锁机制之外,还提供了几个非常有用的并发工具类:CountDownLatch.CyclicBarrier.Semphore.Exchanger.Ph ...
- Java并发工具类(四):线程间交换数据的Exchanger
简介 Exchanger(交换者)是一个用于线程间协作的工具类.Exchanger用于进行线程间的数据交换.它提供一个同步点,在这个同步点两个线程可以交换彼此的数据.这两个线程通过exchange方法 ...
随机推荐
- C#中 Var关键字
文章来源: 青水白凡 C#中 Var关键字 Var是C#3.5新增的一个关键字,用来代替某些具体的类型,由编译器自动判断变量类型,编译器可以根据变量的初始化值"推断"变量的类型. ...
- Linux实时查看日志的四种命令详解
转至:https://blog.csdn.net/qq_33223299/article/details/93773989 如何在Linux中实时查看日志文件的内容?那么有很多实用程序可以帮助用户在文 ...
- eclipse gradle创建java项目
参考: https://blog.csdn.net/weixin_33733810/article/details/92438913 一 : 需要在 https://gradle.org/releas ...
- redis部署以及各种数据类型使用命令等详解
参考:https://www.cnblogs.com/pyyu/p/9843950.html redis博客地址 编译安装redis 开始部署 [root@mcw01 ~]$ ls anaconda ...
- 安装java环境与eclipse
一.今天安装了java环境和eclipse 二.大道至简学了前三章(前两章)问题不大还好理解 第三章有些东西很懵 1.进入网址www.oracle.com,点击resource(资源) 点击softw ...
- vue项目如何引用jquery
虽然vue不推荐直接操作DOM,而且也提供了操作DOM的方式.但是在某些时候还是要用到jquery,那么如何引入jquery呢? 费了半天劲,记录一下: 一 : 安装jquery npm instal ...
- 【战略】以色列公司的数据驱动tip
Eric Rapps:我们的团队获得了大量的收入,并且持续保持着增长.如果获得我们的投资,实际上是你是获得了和相关领域技术积累.专家沟通的支持.但更重要的是,你可以近距离地接触我们的运营资源,您可以直 ...
- 同事都说有SQL注入风险,我非说没有
前言 现在的项目,在操作数据库的时候,我都喜欢用ORM框架,其中EF是一直以来用的比较多的:EF 的封装的确让小伙伴一心注重业务逻辑就行了,不用过多的关注操作数据库的具体细节.但是在某些场景会选择执行 ...
- 2022:checking for Python executable "python2" in the PATH
目录 一.node报错 说明 1.网上常用方法一(本博主环境无效) 2.网上常用方法二(本博主环境无效) 3.本博主使用方法(当前有效) 1.确保NodeJS环境安装没有问题,如果不会安装,请参考 构 ...
- 【黑马程序员C++ STL】学习记录
黑马程序员 2017 C++ STL 教程(STL 部分已完结) 基于黑马STL课程整理:黑马程序员2017C++STL教程 视频链接 专栏:本STL专栏目录 文章目录 黑马程序员 2017 C++ ...