Apache的commons-lang3包StringUtils.isEmpty、isBlank方法区别

本文解析了commons-lang3库中StringUtils的isEmpty和isBlank方法在判断字符串是否为空或仅包含空格上的差异,isBlank多了一层对空白字符的检查。通过实例说明两者的区别,适用于理解和优化代码中的空值判断。
摘要由CSDN通过智能技术生成

经常使用commons-lang3包中的StringUtils判断字符串是否为空,isEmpty、isBlank都在使用,但在使用上还有有点小小的区别的。

isEmpty源码

// Empty checks
//-----------------------------------------------------------------------
/**
 * <p>Checks if a CharSequence is empty ("") or null.</p>
 *
 * <pre>
 * StringUtils.isEmpty(null)      = true
 * StringUtils.isEmpty("")        = true
 * StringUtils.isEmpty(" ")       = false
 * StringUtils.isEmpty("bob")     = false
 * StringUtils.isEmpty("  bob  ") = false
 * </pre>
 *
 * <p>NOTE: This method changed in Lang version 2.0.
 * It no longer trims the CharSequence.
 * That functionality is available in isBlank().</p>
 *
 * @param cs  the CharSequence to check, may be null
 * @return {@code true} if the CharSequence is empty or null
 * @since 3.0 Changed signature from isEmpty(String) to isEmpty(CharSequence)
 */
public static boolean isEmpty(final CharSequence cs) {
    return cs == null || cs.length() == 0;
}

isBlank源码

/**
 * <p>Checks if a CharSequence is empty (""), null or whitespace only.</p>
 *
 * <p>Whitespace is defined by {@link Character#isWhitespace(char)}.</p>
 *
 * <pre>
 * StringUtils.isBlank(null)      = true
 * StringUtils.isBlank("")        = true
 * StringUtils.isBlank(" ")       = true
 * StringUtils.isBlank("bob")     = false
 * StringUtils.isBlank("  bob  ") = false
 * </pre>
 *
 * @param cs  the CharSequence to check, may be null
 * @return {@code true} if the CharSequence is null, empty or whitespace only
 * @since 2.0
 * @since 3.0 Changed signature from isBlank(String) to isBlank(CharSequence)
 */
public static boolean isBlank(final CharSequence cs) {
    int strLen;
    if (cs == null || (strLen = cs.length()) == 0) {
        return true;
    }
    for (int i = 0; i < strLen; i++) {
        if (!Character.isWhitespace(cs.charAt(i))) {
            return false;
        }
    }
    return true;
}

区别

for (int i = 0; i < strLen; i++) {
    if (!Character.isWhitespace(cs.charAt(i))) {
        return false;
    }
}

isBlank多了一个循环,循环入参中的字符串,若有一个字符不是空,入参字符串不为空,当入参字符串中每个字符都是空格时,isBlank也返回true。

即,针对同一个字符串” “(中间是英文空格),两个方法返回值不一样,isEmpty 返回 false,而 isBlank 则返回 true.

### 回答1: org.apache.commons.lang3.stringutils.jar 是一个用于处理字符串的 Java 库。它属于 Apache Commons Lang 项目的一部分。 这个库提供了许多方便且常用的字符串处理方法。比如,它含了处理空字符串的方法,如判断字符串是否为空或只含空格、移除字符串中的空格等。它还提供了一些字符串操作的方法,如字符串的截取、连接、反转等。此外,它还提供了一些处理字符的方法,如判断字符串是否为数字、字母或空白字符、转换字符串大小写等。 org.apache.commons.lang3.stringutils.jar 还含了一些处理字符串数组的方法。比如,它提供了根据某个字符或字符串将字符串数组连接成一个字符串的方法,也可以将字符串数组按照指定规则进行分割。 此外,这个库还提供了一些处理字符串的其他实用方法,如字符串的填充、重复、截断等。它还提供了一些转换字符串格式的方法,如将字符串转换为 camelCase、snake_case 或 kebab-case 等。 总结来说,org.apache.commons.lang3.stringutils.jar 是一个功能强大且实用的字符串处理库,它提供了丰富的方法来方便开发者对字符串进行各种操作和处理。使用这个库可以有效地简化开发过程,并提高代码的可读性和可维护性。同时,Apache Commons Lang 项目作为一个广泛使用的开源项目,拥有活跃的社区和可靠的技术支持,能够提供稳定可靠的使用体验。 ### 回答2: org.apache.commons.lang3.stringutils.jar 是一个用于字符串操作的Java库,它是Apache Commons项目的一部分。在这个库中,org.apache.commons.lang3.stringutils.jar 提供了许多实用的字符串处理方法和工具类。 首先,该库提供了一系列静态方法,可以对字符串进行常见的操作,例如判断字符串是否为空、去除字符串中的空格、判断字符串是否含特定字符等。这些方法有助于简化开发人员对字符串的处理和验证。 其次,lib库还提供了各种字符串操作的工具类。例如,StringUtils类提供了一系列高效的字符串操作方法,如截取字符串、替换字符串、大小写转换等。此外,StringEscapeUtils类提供了用于转义HTML、XML和Java字符串的方法,有助于避免特殊字符引起的问题。 此外,该库还含了一些用于字符串比较和匹配的工具类。例如,StringUtils类提供了进行字符串比较的方法,可以根据不同的比较规则进行字符串的比较。此外,RegExUtils类提供了一些用于正则表达式匹配的方法,可以方便地根据正则表达式进行模式匹配和替换。 总之,org.apache.commons.lang3.stringutils.jar 提供了丰富的字符串处理方法和工具类,可以简化开发人员对字符串的操作,并且提供了高效、易用的字符串处理解决方案。无论是开发web应用、桌面应用还是其他类型的应用,该库都是一个非常有价值的工具。 ### 回答3: org.apache.commons.lang3.stringutils.jar 是一个 Java 库,它是 Apache Commons Lang 的一部分。这个库提供了一系列用于字符串处理的实用方法和工具类。 在 org.apache.commons.lang3.stringutils.jar 中,有很多常用的字符串处理方法,例如: - isBlank() 方法用于判断字符串是否为空白(即全部由空格、制表符、换行符等组成)。 - isEmpty() 方法用于判断字符串是否为空(即长度为0)。 - capitalize() 方法用于将字符串的首字母大写,并将其他字符保持不变。 - uncapitalize() 方法用于将字符串的首字母小写,并将其他字符保持不变。 - join() 方法用于将一个数组或集合中的元素以指定的分隔符连接起来,形成一个新的字符串。 - contains() 方法用于判断字符串是否含指定的字符序列。 - substring() 方法用于获取字符串的子串。 - swapCase() 方法用于将字符串中的大小写字母进行转换,大写字母转换为小写字母,小写字母转换为大写字母。 除了上述方法外,org.apache.commons.lang3.stringutils.jar 还提供了很多其他实用的字符串处理方法,用于处理字符串的拆分、替换、删除、填充等操作。这些方法都被封装在 StringUtils 类中,可以直接调用使用。 在开发过程中,使用 org.apache.commons.lang3.stringutils.jar 可以方便地处理字符串,提高开发效率和代码质量。同时,由于是开源库,还可以根据需要进行修改和定制,使其更符合实际需求。 总之,org.apache.commons.lang3.stringutils.jar 是一个值得使用的字符串处理库,它提供了丰富的方法和工具类,可以简化字符串的处理过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值