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方法 ...
随机推荐
- 01-SpringCloud介绍
简介 Spring Cloud provides tools for developers to quickly build some of the common patterns in distri ...
- 基于SqlSugar的数据库访问处理的封装,支持多数据库并使之适应于实际业务开发中
在我的各种开发框架中,数据访问有的基于微软企业库,有的基于EFCore的实体框架,两者各有其应用场景,不过多的去比较.最近在使用SqlSugar的时候,觉得这个数据访问处理的组件确实很灵活,据说性能也 ...
- laravel 公共类json库封装
封装常用的接口响应: 创建 response.php 在app下创建如下文件下(目录及文件名可以自己设置) app/common/response.php,在内部补充如下代码: <?php /* ...
- laravel7 搜索之when()函数实现搜索
当做搜索功能时,我们经常会遇到这样的情况,需要判断搜索词是否为空,为空则不执行模糊查询条件,反之需要执行模糊查询条件.这样很繁琐,其实laravel给我们提供了一个友好的函数,辅助我们很快完成这样任务 ...
- tp5 git 常见命令
git clone git add . # 跟踪所有改动过的文件 git commit -m "commit message" # 提交所有更新过的文件 git checkout ...
- 1、mysql数据库的数据目录结构
查看mysql的主要目录结构 通过命名查看mysql的目录结构:find / -name mysql 1.1数据库文件的存放路径 MySQL数据库文件的存放路径:/var/lib/mysql/ 1.2 ...
- Re:《Unity Shader入门精要》13.3全局雾效--如何从深度纹理重构世界坐标
如何从深度纹理重构世界坐标 游戏特效,后处理是必不可少的,而后处理经常需要我们得到当前画面的像素对应世界空间的所有信息. 思路 通过深度纹理取得NDC坐标,然后再通过NDC坐标还原成世界空间坐标 // ...
- ASP.NET Core 6框架揭秘实例演示[26]:跟踪应用接收的每一次请求
很多人可能对ASP.NET Core框架自身记录的诊断日志并不关心,其实这些日志对纠错排错和性能监控提供了很有用的信息.如果需要创建一个APM(Application Performance Mana ...
- C++设计模式 - 迭代器模式(Iterator)
数据结构模式 常常有一-些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用.这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无 ...
- kubernetes内yaml格式
yaml格式的pod定义文件完整内容: apiVersion: v1 #必选,版本号,例如v1 可通过 kubectl api-versions 获取 kind: Pod #必选,Pod metada ...