isblank java_判空我推荐StringUtils.isBlank
在我们日常开发中,判空应该是最常用的一个操作了。因此项目中总是少不了依赖commons-lang3包。这个包为我们提供了两个判空的方法,分别是StringUtils.isEmpty(CharSequence cs)和StringUtils.isBlank(CharSequence cs)。我们分别来看看这两个方法有什么区别。
一、StringUtils.isEmpty
isEmpty的源码如下:
public static boolean isEmpty(CharSequence cs) {
return cs == null || cs.length() == 0;
}
这个方法判断的是字符串是否为null或者其长度是否为零。
测试效果
public class BlankAndEmpty {
public static void main(String[] args) {
System.out.println(StringUtils.isEmpty(null)); // true
System.out.println(StringUtils.isEmpty("")); //true
System.out.println(StringUtils.isEmpty(" ")); //false
System.out.println(StringUtils.isEmpty("\t")); //false
System.out.println(StringUtils.isEmpty("Java旅途")); //false
}
}
二、StringUtils.isBlank
isBlank的源码如下:
public static boolean isBlank(CharSequence cs) {
int strLen = length(cs);
if (strLen == 0) {
return true;
} else {
for(int i = 0; i < strLen; ++i) {
if (!Character.isWhitespace(cs.charAt(i))) {
return false;
}
}
return true;
}
}
length(cs)的方法如下
public static int length(CharSequence cs) {
return cs == null ? 0 : cs.length();
}
这个方法除了判断字符串是否为null和长度是否为零,还判断了是否为空格,如果是空格也返回true。
测试效果
public class BlankAndEmpty {
public static void main(String[] args) {
System.out.println(StringUtils.isBlank(null)); //true
System.out.println(StringUtils.isBlank("")); //true
System.out.println(StringUtils.isBlank(" ")); //true
System.out.println(StringUtils.isBlank("\t")); //true
System.out.println(StringUtils.isBlank("Java旅途")); //false
}
}
三、总结
isEmpty:如果是null或者“”则返回true。
isBlank:如果是null或者“”或者空格或者制表符则返回true。isBlank判空更加准确。
四、扩展
在实际开发中,除了isBlank判空的几种情况之外,其实“null”字符串我们也会当作空字符串处理。
我们需要判断几个字段同时不能为空,如果还用isBlank就显得有点累赘了。我们可以使用String的可变参数提供如下工具类。
public class StringTool {
public static boolean isNullStr(String... args) {
boolean falg = false;
for (String arg : args) {
if (StringUtils.isBlank(arg) || arg.equals("null")) {
falg = true;
return falg;
}
}
return falg;
}
}
这个工具类的优点很明显,一方面判断了字符串“null”,另一方面对参数个数无限制,只要有一个参数是空则返回true。
isblank java_判空我推荐StringUtils.isBlank相关推荐
- 判空我推荐StringUtils.isBlank
在我们日常开发中,判空应该是最常用的一个操作了.因此项目中总是少不了依赖commons-lang3包.这个包为我们提供了两个判空的方法,分别是StringUtils.isEmpty(CharSeque ...
- StringUtils 系列之 StringUtils.isBlank() 和 StringUtils.isNotBlank() 的区别、CollectionUtils.isEmpty()
一.StringUtils 系列之 StringUtils.isBlank() 和 StringUtils.isNotBlank() 的区别 // StringUtils.isEmpty(); // ...
- StringUtils isEmpty 和 isBlank 的区别 CollectionUtils判空的方法
本文讨论的 StringUtils 属于package org.apache.commons.lang; 文章目录 字符串判空检查 "" 和 null 的区别 isEmpty(St ...
- java script isblank_java判断一个字符串是否为空,isEmpty和isBlank的区别
转载于:https://blog.csdn.net/liusa825983081/article/details/78246792 实际应用中,经常会用到判断字符串是否为空的逻辑 比较简单的就是用 S ...
- java判断一个字符串是否为空,isEmpty和isBlank的区别
实际应用中,经常会用到判断字符串是否为空的逻辑 比较简单的就是用 Str != null && Str.length() >0 来判断 其实很多java工具集都是有包装好的接口可 ...
- java的StringUtils.isBlank和StringUtils.isEmpty方法区别(org.apache.commons.lang3.StringUtils)
前言 估计很多朋友跟我一样,平时也不会特别去注意究竟用isBlank还是isEmpty去判断空字符串,但是大部分场景优先使用isBlank就对了. isEmpty是否为空,只有当==null或者==& ...
- StringUtils 工具类常用方法汇总 1(判空、转换、移除、替换、反转)
Apache commons lang3 包下的 StringUtils 工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便.最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的 ...
- StringUtils.isEmpty和StringUtils.isBlank的区别
两个方法都是判断字符是否为空的.前者是要求没有任何字符,即str==null 或 str.length()==0:后者要求是空白字符,即无意义字符.其实isBlank判断的空字符是包括了isEmpty ...
- spring字符串判空_字符串工具类StringUtils实现字符串是否中文、字符串分割/判空/替换/查找、是否包含乱码及字符串数组合并等常规操作...
一.前言 关于字符串工具类StringUtils实现字符串是否包含isChinese中文.是否包含isMessyCode乱码.常规数据类型转换.替换/删除/判空.两字符串数组mergeStringAr ...
最新文章
- 第七篇 JVM核心机制之JVM运行和类加载全过程(二)
- beta阶段140字评论
- java编写科赫曲线_分形——科赫曲线
- 高斯背景建模 matlab,高斯背景建模整理 – 要饭的
- 这是我们的第一篇博客----偕行软件
- 真实AIS数据,解码,可视化
- 利用Python求阶乘
- Struts2学习(二):第一个Action
- vue-router 懒加载优化
- python清理日志脚本_Python日志:如果在程序运行时删除了日志文件,则创建新的日志文件(RotatingFileHandler)...
- poj3557 Map Generator
- win10安装IIS及操作使用
- 成功解决raise KeyError(f“None of [{key}] are in the [{axis_name}]“)KeyError: “None of [Index([‘age.in.y
- 嵌入式工程师面试题集-MCU_STM32
- Notepad++ 替代品开源了!
- linux 内存取证_内存取证工具volatility
- python批量生成word_实例5:用Python批量生成word版邀请函
- pytorch1.13启用caffe2
- 面向对象的PHP编程
- nginx服务器的文档根目录,nginx更改根目录
热门文章
- windows10上Nginx的配置
- PHP设计模式之装饰者模式:钢铁侠的战衣逐步升级
- 斗牛怎么玩法算法_干货:可转债怎么打新百分之百中签?详细讲解抢权配售,值得收藏...
- ZJOI 2017 DAY2 NGU
- 关于Word 2007 文档结构图字体太小的问题
- Python界面编程第十三课:Pyside2 (Qt For Python)GridLayout网格布局
- 面向对象分析与设计示例:骰子游戏
- [354]python os.path模块
- 微信小程序js发送模板消息
- 20050821:搬家了