Apache Commons Lang 中的 StringUtils 类提供了一系列用于操作 Java String 对象的方法,这些方法不仅补充了 JDK 自带的 String 类型操作功能,还特别设计为 null 安全,意味着当输入参数为 null 时不会引发 NullPointerException 异常,而是返回一个预定义的结果(如 null 或者默认值)。
一、字符串空值检查
StringUtils 提供了几种方法来检查字符串是否为空:
boolean isEmpty(String str)
: 判断给定字符串是否为 null 或长度为 0。boolean isNotEmpty(String str)
: 等同于 !isEmpty(str),用于判断字符串非空。boolean isBlank(String str)
: 判断字符串是否为空、仅包含空白字符或者长度为 0。boolean isNotBlank(String str)
: 等同于 !isBlank(str),用于判断字符串非空且不全是空白字符。
下面通过具体的例子来区分这些方法的不同之处:
示例 1: 使用 isBlank 和 isNotBlank 方法判断字符串
- StringUtils.isBlank(""); // true
- StringUtils.isBlank(" "); // true
- StringUtils.isBlank("\t\n\f\r"); // true, 制表符、换行符、换页符和回车符均被视为空白字符
- StringUtils.isBlank("\b"); // false, 单词边界符不是空白字符
- StringUtils.isBlank("bbb"); // false
- StringUtils.isBlank(" bbb "); // false
示例 2: 使用 isNotBlank 方法进一步验证
- StringUtils.isNotBlank(null); // false
- StringUtils.isNotBlank(""); // false
- StringUtils.isNotBlank(" "); // false
- StringUtils.isNotBlank("\t\n\f\r"); // false
- StringUtils.isNotBlank("\b"); // true
- StringUtils.isNotBlank("bbb"); // true
- StringUtils.isNotBlank(" bbb "); // true
示例 3: 使用 isEmpty 和 isNotEmpty 方法检查字符串
- StringUtils.isEmpty(null); // true
- StringUtils.isEmpty(""); // true
- StringUtils.isEmpty(" "); // false
- StringUtils.isEmpty("bbb"); // false
- StringUtils.isEmpty(" bbb "); // false
示例 4: 使用 isNotEmpty 方法进行反向验证
- StringUtils.isNotEmpty(null); // false
- StringUtils.isNotEmpty(""); // false
- StringUtils.isNotEmpty(" "); // true
- StringUtils.isNotEmpty("bbb"); // true
- StringUtils.isNotEmpty(" bbb "); // true
通过上述示例可以看出,isBlank
和 isNotBlank
主要关注字符串是否完全由空白字符组成,而 isEmpty
和 isNotEmpty
更多是检查字符串是否为空或长度为 0。
希望以上内容能帮助你更好地理解和使用 StringUtils 类中的相关方法。