hutool工具类中StrUtil如何判断一个字符串是否为空,isEmpty和isBlank的区别

简介: hutool工具类中StrUtil如何判断一个字符串是否为空,isEmpty和isBlank的区别

1:引入依赖

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.16</version>
</dependency>

2:使用方法

String name = " ";
        String name = "null";
        String name = "777"
        System.out.println(StrUtil.isBlank(name));
        System.out.println(StrUtil.isEmpty(name));;

3:StrUtil.isBlank( )

作用:该方法会先将字符串去除头尾空格后再进行判断。如果字符串为 null 或者去除头尾空格后的长度为0,则返回 true;否则返回 false。

//CharSequence是一个描述字符串结构的接口  
  public static boolean isBlank(CharSequence str) {
       //初始化一个length  长度变量
        int length;
       // 如果这个字符串不是null, 并且这个字符串的长度不等于0 
        if (str != null && (length = str.length()) != 0) {
            //遍历这个字符串的长度
            for(int i = 0; i < length; ++i) {
            //判断字符串 str 中第 i 个字符是否为空白字符(空格、制表符、换行符等)。
            //具体来说,str.charAt(i) 表示获取 str 中第 i 个字符,
               然后将其与空白字符进行比较,
            //使用了 CharUtil.isBlankChar 方法。
               这个方法是一个自定义的工具类,
               可能实现了一些逻辑来判断一个字符是否为空白字符。
                if (!CharUtil.isBlankChar(str.charAt(i))) {
                    return false;
                }
            }
            return true;
        } else {
            return true;
        }
    }

81f80366bdc2480294b8a7dd44bf8248.png

4:StrUtil.isEmpty( )

作用:该方法会判断字符串是否为 null 或长度为 0。如果是,则返回 true;否则返回 false。

public static boolean isEmpty(CharSequence str) {
        //返回字符串是否为空并且它的长度是否等于 0 
        return str == null || str.length() == 0;
    }

5:两者区别

区别:在于对空格的处理。isEmpty 只判断字符串本身是否为空,而 isBlank 还会将字符串前后的空格给去掉后再判断是否为空。

例如,下面的代码:

String str = "  ";
System.out.println(StrUtil.isEmpty(str));   // 输出结果:false
System.out.println(StrUtil.isBlank(str));   // 输出结果:true

在这个例子中,字符串 str 的内容是两个空格,显然不是空字符串(长度不为 0),但是它是一个空白字符串,即只包含空格。因此,isEmpty 方法返回 false,而 isBlank 方法返回 true


目录
相关文章
|
1月前
|
Java
hashCode()和 equals()方法的默认实现
在Java中,`hashCode()` 和 `equals()` 方法的默认实现由 `Object` 类提供。`equals()` 默认比较对象引用是否相同,`hashCode()` 则返回对象的内存地址的整数表示。为了确保哈希表等数据结构的正确性,当重写 `equals()` 时,通常也需要重写 `hashCode()`。
42 8
|
7月前
|
Java
判断不为空和不为空串的方法java
判断不为空和不为空串的方法java
|
7月前
|
Java 开发工具 git
Java判断字符串是否为空
Java判断字符串是否为空
32 0
|
前端开发 Java
Java中StringUtils这个工具类中:isEmpty 和 isBlank 的用法区别
Java中StringUtils这个工具类中:isEmpty 和 isBlank 的用法区别
168 0
StringUtils判断字符串是否为空
StringUtils判断字符串是否为空
135 0
StringUtils判断字符串是否为空
StringUtils工具类常用方法
import org.apache.commons.lang.StringUtils;StringUtils工具类常用方法
105 0
Java 判断字符串是否为空的四种方法
Java 判断字符串是否为空的四种方法
java104-字符串equals,charAt,endwith,startwith方法
java104-字符串equals,charAt,endwith,startwith方法
149 0
java104-字符串equals,charAt,endwith,startwith方法