关于StringUtils.isBlank()的使用及说明

 更新时间:2023年05月05日 16:00:23   作者:会飞地太阳  
这篇文章主要介绍了关于StringUtils.isBlank()的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

StringUtils.isBlank()的使用

在校验一个String类型的变量是否为空时,可以使用StringUtils.isBlank方法,它可以校验三种情况:是否为null、是否为""、是否为空字符串(引号中间有空格)" "、制表符、换行符、换页符和回车。

StringUtils.isBlank(str); 当str不为空时,返回值为false。  

下面是该方法的源码:

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;
        }
    }

在业务代码中使用第三方jar的工具类去判断空,简化开发且方便阅读,类似的还有isEmpty()方法。

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

通过源码可以看出:

1.isEmpty没有忽略空格参数,是以是否为空和是否存在未判断依据。

2.isBlank进行了为空(字符串为空格、制表符、tab的情况)的判断。一般比较常用。

大家可以通过下面的例子进行体会:

StringUtils.isEmpty("yyy") = false
StringUtils.isEmpty("") = true
StringUtils.isEmpty("   ") = false
StringUtils.isBlank("yyy") = false
StringUtils.isBlank("") = true
StringUtils.isBlank("   ") = true

常用的方法,但是时间久了会记忆模糊,特作出记录,高手可以忽略。。。

StringUtils.isBlank和StringUtils.isEmpty的区别和使用

StringUtils.isBlank和StringUtils.isEmpty都是判断空的方法。

依赖:

<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>

isBlan()的使用

boolean b1 = StringUtils.isBlank(null);
        boolean b2 = StringUtils.isBlank("");
        boolean b3 = StringUtils.isBlank(" ");
        boolean b4 = StringUtils.isBlank("\t");
        boolean b5 = StringUtils.isBlank("\n");
        boolean b6 = StringUtils.isBlank("test");
        System.out.println("判断null = "+ b1 + '\n' + "判断\"\" = "+ b2 + '\n'
                 + "判断空格 = "+ b3 + '\n' + "判断制表符 = "+ b4 + '\n' + "判断换行符 = "+ b5
                + '\n' + "判断字符串 = "+ b6);

isEmpty()的使用

boolean b1 = StringUtils.isEmpty(null);
        boolean b2 = StringUtils.isEmpty("");
        boolean b3 = StringUtils.isEmpty(" ");
        boolean b4 = StringUtils.isEmpty("\t");
        boolean b5 = StringUtils.isBlank("\n");
        boolean b6 = StringUtils.isEmpty("test");
        System.out.println("判断null = "+ b1 + '\n' + "判断\"\" = "+ b2 + '\n'
                + "判断空格 = "+ b3 + '\n' + "判断制表符 = "+ b4 + '\n' + "判断换行符 = "+ b5
                + '\n' + "判断字符串 = "+ b6);

根据上面结果的对比,isBlank()方法和isEmpty方法的区别:

  • isBlank()判断制表符(\t)和空格时,为true;
  • isEmpty()判断制表符(\t)和空格时,为false;

两个判断null、""、以及换行符(\n或者\r)时为true。

两者的不同主要是因为:

isBlank()源码:

isBlank()判断是否为null和length()为0,还判断是否是空格、tab键、换行符。

isWhitespace() 方法用于判断指定字符是否为空白字符,空白符包含:空格、tab 键、换行符

isEmpty()源码

isEmpty()只判断是否为null和长度为0。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • Java 实战项目之家政服务平台系统的实现流程

    Java 实战项目之家政服务平台系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+SSM+jsp+mysql+maven实现家政服务平台系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • 解决Spring Security集成knife4j访问接口文档出现403的问题

    解决Spring Security集成knife4j访问接口文档出现403的问题

    这篇文章主要给大家介绍了如何解决Spring Security集成knife4j访问接口文档出现403的问题,文中有详细的解决方案,有需要的朋友可以参考阅读下
    2023-07-07
  • java排序算法之冒泡排序

    java排序算法之冒泡排序

    这篇文章主要为大家详细介绍了java排序算法之冒泡排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Mybatis @SelectKey用法解读

    Mybatis @SelectKey用法解读

    这篇文章主要介绍了Mybatis @SelectKey用法解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • JVM指令的使用深入详解

    JVM指令的使用深入详解

    这篇文章主要给大家介绍了关于JVM指令使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • java中把字符串转成 double的方法

    java中把字符串转成 double的方法

    Java 中可以使用 Double 类中的静态方法 parseDouble() 将一个字符串转换为 double 类型的数值,本文结合实例代码对java字符串转成 double详细讲解,需要的朋友参考下吧
    2023-08-08
  • 解决程序包org.springframework.test.context不存在

    解决程序包org.springframework.test.context不存在

    这篇文章主要介绍了解决程序包org.springframework.test.context不存在的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • SpringBoot如何对LocalDateTime进行格式化并解析

    SpringBoot如何对LocalDateTime进行格式化并解析

    这篇文章主要介绍了SpringBoot如何对LocalDateTime进行格式化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • SpringBoot中yml多环境配置的3种方法

    SpringBoot中yml多环境配置的3种方法

    这篇文章主要给大家介绍了SpringBoot中yml多环境配置的3种方法,文中有详细的代码示例供大家参考,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-10-10
  • Java List接口的集合使用详解

    Java List接口的集合使用详解

    这篇文章主要介绍了Java集合操作之List接口及其实现方法,详细分析了Java集合操作中List接口原理、功能、用法及操作注意事项,需要的朋友可以参考下
    2021-08-08

最新评论