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

isEmpty 和 isBlank 的区别

前言

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

isEmpty系列

StringUtils.isEmpty()

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

java 复制代码
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("Hanson") = false
StringUtils.isEmpty(" Hanson ") = false

源码:

java 复制代码
public static boolean isEmpty(CharSequence cs) {
    return cs == null || cs.length() == 0;
}

StringUtils.isNotEmpty()

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

java 复制代码
public static boolean isNotEmpty(final CharSequence cs) {
    return !isEmpty(cs);
}

StringUtils.isAnyEmpty()

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

java 复制代码
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

源码:

java 复制代码
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

java 复制代码
public static boolean isNoneEmpty(CharSequence... css) {
    return !isAnyEmpty(css);
}

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

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

javascript 复制代码
// An highlighted block
var foo = 'bar';

isBank系列

StringUtils.isBlank()

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

java 复制代码
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("hanson") = false
StringUtils.isBlank(" hanson ") = false

源码:

java 复制代码
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();

java 复制代码
public static boolean isNotBlank(CharSequence cs) {
    return !isBlank(cs);
}

StringUtils.isAnyBlank()

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

java 复制代码
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

源码:

java 复制代码
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()

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

java 复制代码
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

源码:

java 复制代码
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

相关推荐
tekin4 个月前
golang中空值判断函数,支持任意类型的空值判断
开发语言·golang·单元测试·go·函数·空值判断·isempty
程序无涯海10 个月前
Apache StringUtils:Java字符串处理工具类
java·apache·工具类·stringutils