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方法 ...
随机推荐
- Guided Anchoring:在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019
Guided Anchoring通过在线生成anchor的方式解决常规手工预设anchor存在的问题,以及能够根据生成的anchor自适应特征,在嵌入方面提供了两种实施方法,是一个很完整的解决方案 ...
- 用 UI 多线程处理 WPF 大量渲染的解决方案
众所周知, WPF 的 UI 渲染是单线程的,所以如果我们异步或者新建线程去进行数据处理的时候,处理完,想要更新 UI 的时候,需要调用一下 Dispatcher.Invoke,将处理完的数据推入到 ...
- linux中at命令详解
转至:https://blog.51cto.com/12822117/2121101 at命令: 一:简介: 计划任务,在特定的时间执行某项工作,在特定的时间执行一次,需要安装at服务,apt-get ...
- python爬虫之抓取小说(逆天邪神)
2022-03-06 23:05:11 申明:自我娱乐,对自我学习过程的总结. 正文: 环境: 系统:win10, python版本:python3.10.2, 工具:pycharm. 项目目标: 实 ...
- c# TextBox只能输入数字的处理方法(完整版各种情况考虑在内,可根据需求灵活修改)
//选择文本框的事件窗口,找到按键输入的方法KeyPress,双击建立新的方法. /// <summary> /// textBox只能输入数字的处理方法 /// </summary ...
- C# Stopwatch计时统计
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...
- SpringSecurity原理解析以及CSRF跨站请求伪造攻击
SpringSecurity SpringSecurity是一个基于Spring开发的非常强大的权限验证框架,其核心功能包括: 认证 (用户登录) 授权 (此用户能够做哪些事情) 攻击防护 (防止伪造 ...
- LeetCode-009-回文数
回文数 题目描述:给你一个整数 x ,如果 x 是一个回文整数,返回 true :否则,返回 false . 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数.例如,121 是回文,而 1 ...
- 微信小程序 实现图片上传并展示到前端(多文件)并实现表单提交验证
链接: https://blog.csdn.net/guanj0623/article/details/121595884?spm=1001.2014.3001.5501 https://blog.c ...
- 解决github网站打不开的方法
发现github最近经常抽风,之前发现打不开时就挂个梯子,最近梯子也都被封了,尝试了下改host发现效果挺好,方法如下(Mac电脑): 1.通过站长工具找出DNS地址:进入站长工具网站的域名解析网址: ...