【StringUtils工具类】isEmpty 和 isBlank 的区别

前言

也许你两个都不知道,也许你除了isEmpty/isNotEmpty/isNotBlank/isBlank外,并不知道还有isAnyEmpty/isNoneEmpty/isAnyBlank/isNoneBlank的存在, 让我们一起来探索org.apache.commons.lang3.StringUtils;这个工具类

isEmpty系列

StringUtils.isEmpty()

是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致isEmpty(" ")=false

StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("Hanson") = false
StringUtils.isEmpty(" Hanson ") = false

源码:

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

StringUtils.isNotEmpty()

相当于不为空 , = !isEmpty()

public static boolean isNotEmpty(final CharSequence cs) {
    return !isEmpty(cs);
}

StringUtils.isAnyEmpty()

是否有一个为空,只有一个为空,就为true.

StringUtils.isAnyEmpty(null) = true
StringUtils.isAnyEmpty(null, "Hanson") = true
StringUtils.isAnyEmpty("", "Hanson") = true
StringUtils.isAnyEmpty("Hanson", "") = true
StringUtils.isAnyEmpty(" Hanson ", null) = true
StringUtils.isAnyEmpty(" ", "Hanson") = false
StringUtils.isAnyEmpty("Hanson", "Huang") = false

源码:

public static boolean isAnyEmpty(CharSequence... css) {
    if (ArrayUtils.isEmpty(css)) {
        return false;
    } else {
        CharSequence[] var1 = css;
        int var2 = css.length;

        for(int var3 = 0; var3 < var2; ++var3) {
            CharSequence cs = var1[var3];
            if (isEmpty(cs)) {
                return true;
            }
        }

        return false;
    }
}

StringUtils.isNoneEmpty()

相当于!isAnyEmpty(css) , 必须所有的值都不为空才返回true

public static boolean isNoneEmpty(CharSequence... css) {
    return !isAnyEmpty(css);
}

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

isBank系列

StringUtils.isBlank()

是否为真空值(空格或者空值)

StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("hanson") = false
StringUtils.isBlank(" hanson ") = false

源码:

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

StringUtils.isNotBlank()

是否真的不为空,不是空格或者空值 ,相当于!isBlank();

public static boolean isNotBlank(CharSequence cs) {
    return !isBlank(cs);
}

StringUtils.isAnyBlank()

是否包含任何真空值(包含空格或空值)

StringUtils.isAnyBlank(null) = true
StringUtils.isAnyBlank(null, "hanson") = true
StringUtils.isAnyBlank(null, null) = true
StringUtils.isAnyBlank("", "hanson") = true
StringUtils.isAnyBlank("hanson", "") = true
StringUtils.isAnyBlank(" hanson ", null) = true
StringUtils.isAnyBlank(" ", "hanson") = true
StringUtils.isAnyBlank("hanson", "huang") = false

源码:

public static boolean isAnyBlank(CharSequence... css) {
    if (ArrayUtils.isEmpty(css)) {
        return false;
    } else {
        CharSequence[] var1 = css;
        int var2 = css.length;

        for(int var3 = 0; var3 < var2; ++var3) {
            CharSequence cs = var1[var3];
            if (isBlank(cs)) {
                return true;
            }
        }

        return false;
    }
}

StringUtils.isNoneBlank()

是否全部都不包含空值或空格

StringUtils.isNoneBlank(null) = false
StringUtils.isNoneBlank(null, "hanson") = false
StringUtils.isNoneBlank(null, null) = false
StringUtils.isNoneBlank("", "hanson") = false
StringUtils.isNoneBlank("hanson", "") = false
StringUtils.isNoneBlank(" hanson ", null) = false
StringUtils.isNoneBlank(" ", "hanson") = false
StringUtils.isNoneBlank("hanson", "huang") = true

源码:

public static boolean isNoneBlank(final CharSequence... css) {
	return !isAnyBlank(css);
}

StringUtils的其他方法

可以参考官方的文档,里面有详细的描述,有些方法还是很好用的.

https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值