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方法 ...
随机推荐
- 5、CPU 的线程与操作系统的线程有何关系?操作系统中的进程和线程是什么关系?
CPU中的线程和操作系统(OS)中的线程即不同,在调度的时候又有些关联.CPU中的线程,我们叫它们Thread,和OS中的线程的名字一样.它来自同步多线程(SMT,Simultaneous Multi ...
- Oracle之SQL限定查询
WHERE限定条件 /*语法结构:SELECT * | 列名1[,列名2...] | 表达式FROM 表名 WHERE 限定条件; */ --查询职位为CLERK的员工信息 SELECT * FROM ...
- Zabbix使用python批量添加主机及主机资产信息-从零到无
- - 时间:2020年11月10日 - - 作者:飞翔的小胖猪 前言: 使用zabbix作为基础环境的监控系统时,面对现网在用的2000+台把这些主机添加到zabbix监控中是一个问题,当然zabb ...
- 【译】C# 11 特性的早期预览
原文 | Kathleen 翻译 | 郑子铭 Visual Studio 17.1(Visual Studio 2022 Update 1)和 .NET SDK 6.0.200 包含 C# 11 的预 ...
- Python:读取Excel 不带第一行标题
#根据第0到第1列进行重建 0-X 1-Y PX=sheet_name.col_values(0)[1:] PY=sheet_name.col_values(1)[1:] 读取的某一列后在后边加[1: ...
- JZ-067-剪绳子
剪绳子 题目描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m.n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]. 请问k[1]x... ...
- 渗透测试之BurpSuite工具的使用介绍(三)
若希望从更早前了解BurpSuite的介绍,请访问第二篇(渗透测试之BurpSuite工具的使用介绍(二)):https://www.cnblogs.com/zhaoyunxiang/p/160002 ...
- cmd git的使用
1:新建仓库 2: 克隆:
- Django基础六之cookie和session
Django基础六之cookie和session 目录 Django基础六之cookie和session 1. cookie和session介绍 1.1 cookie 简介 1.2 cookie的缺陷 ...
- Play商店显示需要进行身份认证。您需要登录自己的Google帐户
前段时间把一加6系统从H2OS换到OxygenOS,Play商店死活不能登录,网络配置等问题已经排除,重装Google全家桶也没有解决问题,最后找到原因. 解决办法:在应用列表中找到Google Pl ...