StringUtils.isEmpty(...)
与 StringUtils.isBlank(...)
是 Apache Commons Lang 库中 StringUtils
类的两个静态方法,它们都用于判断字符串是否为空,但在具体判断标准上存在差异。以下是它们之间的主要区别:
StringUtils.isEmpty(...)
- 判断标准:该方法判断字符串是否为
null
或空字符串(""
)。如果字符串是null
或长度为0(即空字符串),则返回true
;否则返回false
。 - 空格处理:该方法不将仅包含空格的字符串视为空。即,如果字符串包含空格(
' '
)、制表符('\t'
)等空白字符,但长度不为0,则isEmpty
方法会返回false
。 - 示例:
StringUtils.isEmpty(null)
=true
StringUtils.isEmpty("")
=true
StringUtils.isEmpty(" ")
=false
(注意空格被视为非空)StringUtils.isEmpty("bob")
=false
StringUtils.isBlank(...)
- 判断标准:该方法不仅判断字符串是否为
null
或空字符串(""
),还进一步判断字符串是否仅由空白字符组成。如果字符串是null
、空字符串或仅包含空白字符(如空格、制表符、换行符等),则返回true
;否则返回false
。 - 空格处理:与
isEmpty
不同,isBlank
将仅包含空格的字符串视为空。 - 示例:
StringUtils.isBlank(null)
=true
StringUtils.isBlank("")
=true
StringUtils.isBlank(" ")
=true
(空格被视为空)StringUtils.isBlank("\t\n\f\r")
=true
(制表符、换行符等也被视为空)StringUtils.isBlank("bob")
=false
StringUtils.isBlank(" bob ")
=false
(注意字符串前后有空格,但中间包含非空白字符)
总结
方法 | 判断标准 | 空格处理 |
---|---|---|
StringUtils.isEmpty(...) | 字符串为 null 或空字符串("" ) | 不将仅包含空格的字符串视为空 |
StringUtils.isBlank(...) | 字符串为 null 、空字符串("" )或仅包含空白字符 | 将仅包含空格的字符串视为空 |
这两个方法在处理字符串时提供了不同的判断标准,可以根据实际需求选择使用。