StringUtils 中 isEmpty 和 isBlank 的区别
2024-09-28 14:29:15
在项目的工作学习中经常用到了 apache commons 中的 StringUtils 的 isBlank 和 isEmpty 来判断字符串是否为空,这个方法都是判断字符串是否为空做判断的,以至于把我搞混了!!! 欲哭无泪啊,索性写个帖子记录下来。方便以后学习。
不多说,我们直接看源码:
isBlank:
public static boolean isBlank(final CharSequence cs) {
int strLen;
if (cs == null || (strLen = cs.length()) == ) {
return true;
}
for (int i = ; i < strLen; i++) {
if (Character.isWhitespace(cs.charAt(i)) == false) {
return false;
}
}
return true;
}
isEmpty:
public static boolean isEmpty(final CharSequence cs) {
return cs == null || cs.length() == 0;
}
接着我们看几个例子就一目了然了:
//isBlank
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false //isEmpty
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
我们可以看到大致没有什么太大的改动主要是对于空字符串的判断(" ").对于 isBlank为真而 isEmpty 为假。
最新文章
- Django rest_framework 实用技巧
- android应用安全——(数据抓包)跟踪监控android数据包
- requests库基本使用
- oracle中的常用语句
- [SQL]SQL语言入门级教材_SQL语言基本语句介绍(四)
- iOS后台如何保持socket长连接和数据传输
- apache2.4.x三种MPM介绍
- Eclipse desktop
- hdoj 1175 (bfs)
- Scoping the Project for iOS 7
- oracle 存储过程循环打开游标数据处理
- 课程四(Convolutional Neural Networks),第一周(Foundations of Convolutional Neural Networks) —— 2.Programming assignments:Convolutional Model: step by step
- poj2823 单调队列初步
- 解决《UNIX环境高级编程》(APUE)示例代码的编译问题
- shell shell基本概述
- 关于程序设计中INF和MOD值的设定
- php理解变量的作用域
- Android 编程下通过 zipalign 对 APK 文件进行优化
- C# 编码命名规则
- alsamixer + alsactl 控制放音通道