StringUtils.isBlank(str)和StringUtils.isEmpty(str)的区别
2024-10-19 18:17:36
1.StringUtils.isEmpty(CharSequence cs)实现源码
public static boolean isEmpty(CharSequence cs) {
return cs == null || cs.length() == 0;
}
从源码发现StringUtils.isEmpty(CharSequence cs)是判断了cs为null或cs.length()=0,但是我们要判断空白字符或者换行符等特殊的转义字符时,它的长度都是大于0的,所以用isEmpty判断是不行的
2.StringUtils.isBlank(CharSequence cs)实现源码
public static boolean isBlank(CharSequence cs) {
int strLen;
if (cs != null && (strLen = cs.length()) != 0) {
for(int i = 0; i < strLen; ++i) {
if (!Character.isWhitespace(cs.charAt(i))) {
return false;
}
} return true;
} else {
return true;
}
}从上可以发现,StringUtils.isBlank方法中比isEmpty多判断了空白字符即方法Character.isWhitespace 空白符有:空格、tab 键\n、换行符\t、回车符 \r 、换页符 \f
测试代码:
public static void main(String[] args) {
//isWhitespace() 方法用于判断指定字符是否为空白字符,空白符包含:空格、tab 键、换行符。
System.out.println(Character.isWhitespace('c'));
System.out.println(Character.isWhitespace(' '));
System.out.println(Character.isWhitespace('\n'));
System.out.println(Character.isWhitespace('\t')); String str = "c";
String str1 = "";
String str2 = " ";
String str3 = "\n";
String str4 = "\t";
System.out.println("is blank:" + StringUtils.isBlank(str3));
System.out.println("is empty:" + StringUtils.isEmpty(str3));
}
false
true
true
true
is blank:true
is empty:false
3.结论
若要过滤掉空白符用StringUtils.isBlank方法,若仅仅是判断字符是否为null或长度是否为0则用StringUtils.isEmpty
最新文章
- IOS 非ARC开发内存管理的几条规则
- HDU 5289
- NLog学习
- CF149D. Coloring Brackets[区间DP !]
- DB层面上的设计 分库分表 读写分离 集群化 负载均衡
- NSString用法
- QQ分组实现,可收缩---ExpandableListView
- Part 98 Anonymous methods in c#
- ios开发中MVC模式的理解
- C语言 rand()函数的用法
- UESTC_Infected Land 2015 UESTC Training for Search Algorithm &; String<;Problem G>;
- 一个关于Integer的秘密
- Codeforces Round #243 (Div. 2) Problem B - Sereja and Mirroring 解读
- Mocha的单元测试实战
- 回家(洛谷 P1592)
- linux命令学习-2-dmesg
- unity游戏设计之背包系统
- word20170101厨房家电kitchen appliances
- SpringBoot的自动配置原理过程解析
- python模块的导入的两种方式区别详解
热门文章
- MA8601升级版 PL2586|USB HUB 工控级芯片方案PL2586|可直接替代FE1.1S芯片方案
- 云南农职《JavaScript交互式网页设计》 综合机试试卷③——实现二级分类菜单
- 20道JavaScript经典面试题
- 物理CPU,物理CPU内核,逻辑CPU概念详解
- C# winform 遍历所有页面的所有控件 ,然后判断组件类型是什么
- [ flask ] 解耦models(解决models文件太臃肿的问题)
- JSP页面实际上就是Servlet
- 深入浅出 CSS 动画
- 使用.NET 6开发TodoList应用(30)——实现Docker打包和部署
- elasticsearch拼写纠错之Term Suggester