-
isEmpty 和 isBlank 的用法区别,你都知道吗?
照惯例,先推荐整理很久、非常实用的面试题仓库:
史上最全的Java面试题库
正文如下,如果觉得有用欢迎点赞、关注~~
也许你两个都不知道,也许你除了isEmpty
/isNotEmpty
/isNotBlank
/isBlank
外,并不知道还有isAnyEmpty
/isNoneEmpty
/isAnyBlank
/isNoneBlank
的存在, come on ,让我们一起来探索org.apache.commons.lang3.StringUtils;
这个工具类.
isEmpty系列
StringUtils.isEmpty()
是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致 isEmpty(" ")=false
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
StringUtils.isEmpty( null ) = true StringUtils.isEmpty( "" ) = true StringUtils.isEmpty( " " ) = false StringUtils.isEmpty(“bob”) = false StringUtils.isEmpty( " bob " ) = false /** * * <p>NOTE: This method changed in Lang version 2.0. * It no longer trims the CharSequence. * That functionality is available in isBlank().</p> * * @param cs the CharSequence to check, may be null * @return {@code true} if the CharSequence is empty or null * @since 3.0 Changed signature from isEmpty(String) to isEmpty(CharSequence) */ public static boolean isEmpty( final CharSequence cs) { return cs == null || cs.length() == 0 ; } |
StringUtils.isNotEmpty()
相当于不为空 , = !isEmpty()
1
2
3
|
public static boolean isNotEmpty( final CharSequence cs) { return !isEmpty(cs); } |
StringUtils.isAnyEmpty()
是否有一个为空,只有一个为空,就为true.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
StringUtils.isAnyEmpty( null ) = true StringUtils.isAnyEmpty( null , “foo”) = true StringUtils.isAnyEmpty( "" , “bar”) = true StringUtils.isAnyEmpty(“bob”, “”) = true StringUtils.isAnyEmpty( " bob " , null ) = true StringUtils.isAnyEmpty( " " , “bar”) = false StringUtils.isAnyEmpty(“foo”, “bar”) = false /** * @param css the CharSequences to check, may be null or empty * @return {@code true} if any of the CharSequences are empty or null * @since 3.2 */ public static boolean isAnyEmpty( final CharSequence... css) { if (ArrayUtils.isEmpty(css)) { return true ; } for ( final CharSequence cs : css){ if (isEmpty(cs)) { return true ; } } return false ; } |
StringUtils.isNoneEmpty()
相当于!isAnyEmpty(css)
, 必须所有的值都不为空才返回true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/** * <p>Checks if none of the CharSequences are empty ("") or null.</p> * * <pre> * StringUtils.isNoneEmpty(null) = false * StringUtils.isNoneEmpty(null, "foo") = false * StringUtils.isNoneEmpty("", "bar") = false * StringUtils.isNoneEmpty("bob", "") = false * StringUtils.isNoneEmpty(" bob ", null) = false * StringUtils.isNoneEmpty(" ", "bar") = true * StringUtils.isNoneEmpty("foo", "bar") = true * </pre> * * @param css the CharSequences to check, may be null or empty * @return {@code true} if none of the CharSequences are empty or null * @since 3.2 */ public static boolean isNoneEmpty( final CharSequence... css) { |
isBank系列
StringUtils.isBlank()
是否为真空值(空格或者空值)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
StringUtils.isBlank( null ) = true StringUtils.isBlank( "" ) = true StringUtils.isBlank( " " ) = true StringUtils.isBlank(“bob”) = false StringUtils.isBlank( " bob " ) = false /** * <p>Checks if a CharSequence is whitespace, empty ("") or null.</p> * @param cs the CharSequence to check, may be null * @return {@code true} if the CharSequence is null, empty or whitespace * @since 2.0 * @since 3.0 Changed signature from isBlank(String) to isBlank(CharSequence) */ public static boolean isBlank( final CharSequence cs) { int strLen; if (cs == null || (strLen = cs.length()) == 0 ) { return true ; } for ( int i = 0 ; i < strLen; i++) { if (Character.isWhitespace(cs.charAt(i)) == false ) { return false ; } } return true ; } |
StringUtils.isNotBlank()
是否真的不为空,不是空格或者空值 ,相当于!isBlank();
1
2
3
|
public static boolean isNotBlank( final CharSequence cs) { return !isBlank(cs); } |
StringUtils.isAnyBlank()
是否包含任何真空值(包含空格或空值)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
StringUtils.isAnyBlank( null ) = true StringUtils.isAnyBlank( null , “foo”) = true StringUtils.isAnyBlank( null , null ) = true StringUtils.isAnyBlank( "" , “bar”) = true StringUtils.isAnyBlank(“bob”, “”) = true StringUtils.isAnyBlank( " bob " , null ) = true StringUtils.isAnyBlank( " " , “bar”) = true StringUtils.isAnyBlank(“foo”, “bar”) = false /** * <p>Checks if any one of the CharSequences are blank ("") or null and not whitespace only..</p> * @param css the CharSequences to check, may be null or empty * @return {@code true} if any of the CharSequences are blank or null or whitespace only * @since 3.2 */ public static boolean isAnyBlank( final CharSequence... css) { if (ArrayUtils.isEmpty(css)) { return true ; } for ( final CharSequence cs : css){ if (isBlank(cs)) { return true ; } } return false ; } |
StringUtils.isNoneBlank()
是否全部都不包含空值或空格
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
StringUtils.isNoneBlank( null ) = false StringUtils.isNoneBlank( null , “foo”) = false StringUtils.isNoneBlank( null , null ) = false StringUtils.isNoneBlank( "" , “bar”) = false StringUtils.isNoneBlank(“bob”, “”) = false StringUtils.isNoneBlank( " bob " , null ) = false StringUtils.isNoneBlank( " " , “bar”) = false StringUtils.isNoneBlank(“foo”, “bar”) = true /** * <p>Checks if none of the CharSequences are blank ("") or null and whitespace only..</p> * @param css the CharSequences to check, may be null or empty * @return {@code true} if none of the CharSequences are blank or null or whitespace only * @since 3.2 */ public static boolean isNoneBlank( final CharSequence... css) { return !isAnyBlank(css); } |
StringUtils的其他方法
可以参考官方的文档,里面有详细的描述,有些方法还是很好用的.
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html
(感谢阅读,希望对你所有帮助)
来源:blog.csdn.net/moshowgame/article/details/102914895
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
JavaScript判断两个数组相等的四类方法
js如何操作video标签
React实战--利用甘特图和看板,强化Paas平
【记录】正则替换的偏方
前端下载 Blob 类型整理
抽象语法树AST必知必会
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程