判空我推荐用StringUtils.isBlank

沙海 2021年6月15日01:17:40Java评论44字数 2727阅读9分5秒阅读模式
摘要

智能摘要

智能摘要文章源自JAVA秀-https://www.javaxiu.com/32476.html

这个方法除了判断字符串是否为null和长度是否为零,还判断了是否为空格,如果是空格也返回true。在实际开发中,除了isBlank判空的几种情况之外,其实"null"字符串我们也会当作空字符串处理。我们需要判断几个字段同时不能为空,如果还用isBlank就显得有点累赘了。文章源自JAVA秀-https://www.javaxiu.com/32476.html

原文约 1088 | 图片 2 | 建议阅读 3 分钟 | 评价反馈文章源自JAVA秀-https://www.javaxiu.com/32476.html

判空我推荐用StringUtils.isBlank

Java学习者社区 文章源自JAVA秀-https://www.javaxiu.com/32476.html

以下文章来源于Java旅途,作者大尧文章源自JAVA秀-https://www.javaxiu.com/32476.html

文章源自JAVA秀-https://www.javaxiu.com/32476.html

判空我推荐用StringUtils.isBlank文章源自JAVA秀-https://www.javaxiu.com/32476.html

Java旅途文章源自JAVA秀-https://www.javaxiu.com/32476.html

『Java旅途』专注于Java技术分享,包含但不局限于Spring Boot、Spring Cloud、消息队列、redis、JVM、Mysql、面经等,欢迎关注,一起学习、一起成长!文章源自JAVA秀-https://www.javaxiu.com/32476.html

文章源自JAVA秀-https://www.javaxiu.com/32476.html

在我们日常开发中,判空应该是最常用的一个操作了。因此项目中总是少不了依赖commons-lang3包。这个包为我们提供了两个判空的方法,分别是StringUtils.isEmpty(CharSequence cs)和StringUtils.isBlank(CharSequence cs)。我们分别来看看这两个方法有什么区别。文章源自JAVA秀-https://www.javaxiu.com/32476.html

一、StringUtils.isEmpty

isEmpty的源码如下:文章源自JAVA秀-https://www.javaxiu.com/32476.html

public static boolean isEmpty(CharSequence cs) {    return cs == null || cs.length() == 0;}

这个方法判断的是字符串是否为null或者其长度是否为零。文章源自JAVA秀-https://www.javaxiu.com/32476.html

测试效果文章源自JAVA秀-https://www.javaxiu.com/32476.html

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的源码如下:文章源自JAVA秀-https://www.javaxiu.com/32476.html

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)的方法如下文章源自JAVA秀-https://www.javaxiu.com/32476.html

public static int length(CharSequence cs) {    return cs == null ? 0 : cs.length();}

这个方法除了判断字符串是否为null和长度是否为零,还判断了是否为空格,如果是空格也返回true。文章源自JAVA秀-https://www.javaxiu.com/32476.html

测试效果文章源自JAVA秀-https://www.javaxiu.com/32476.html

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。文章源自JAVA秀-https://www.javaxiu.com/32476.html

  • isBlank:如果是null或者“”或者空格或者制表符则返回true。isBlank判空更加准确文章源自JAVA秀-https://www.javaxiu.com/32476.html

四、扩展

  1. 在实际开发中,除了isBlank判空的几种情况之外,其实“null”字符串我们也会当作空字符串处理。文章源自JAVA秀-https://www.javaxiu.com/32476.html

  2. 我们需要判断几个字段同时不能为空,如果还用isBlank就显得有点累赘了。我们可以使用String的可变参数提供如下工具类。文章源自JAVA秀-https://www.javaxiu.com/32476.html

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。文章源自JAVA秀-https://www.javaxiu.com/32476.html

推荐阅读• MySQL 中的反斜杠 \\,真是太坑了!!• 你要的Spring Boot多图片上传回显功能已经实现了,赶紧收藏吃灰~• 如何把Spring Boot的Jar包做成exe?超详细教程来了!• MySql批量插入时,如何不插入重复的数据最近面试BATJ,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。文章源自JAVA秀-https://www.javaxiu.com/32476.html

谢谢支持哟 (*^__^*)文章源自JAVA秀-https://www.javaxiu.com/32476.html

继续阅读
速蛙云 - 极致体验,强烈推荐!!!购买套餐就免费送各大视频网站会员!快速稳定、独家福利社、流媒体稳定解锁!速度快,全球上网、视频、游戏加速、独立IP均支持!基础套餐性价比很高!这里不多说,我一直正在使用,推荐购买:https://www.javaxiu.com/59919.html
weinxin
资源分享QQ群
本站是JAVA秀团队的技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定