StringUtils中isEmpty 和isBlank的区别

StringUtils在commons-lang-2.2.jar包中:org.apache.commons.lang.StringUtils ;

StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且null是安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。

除了构造器,StringUtils中一共有130多个方法,并且都是static的,所以我们可以这样调用StringUtils.xxx()

1. public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是str==null或str.length()==0

下面是StringUtils判断是否为空的示例:
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false //注意在StringUtils中空格作非空处理

StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false

2. public static boolean isNotEmpty(String str)
判断某字符串是否非空,等于!isEmpty(String str)

下面是示例:
StringUtils.isNotEmpty(null) = false
StringUtils.isNotEmpty("") = false
StringUtils.isNotEmpty(" ") = true

StringUtils.isNotEmpty("bob") = true
StringUtils.isNotEmpty(" bob ") = true

3. public static boolean isBlank(String str)
判断某字符串是否为空或长度为0或由空白符(whitespace)构成

下面是示例:
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true

StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车符StringUtils.isBlank()均识为空白符
StringUtils.isBlank("\b") = false //"\b"为单词边界符
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false

4. public static boolean isNotBlank(String str)
判断某字符串是否不为空且长度不为0且不由空白符(whitespace)构成,等于!isBlank(String str)

下面是示例:
StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("") = false
StringUtils.isNotBlank(" ") = false

StringUtils.isNotBlank("\t \n \f \r") = false
StringUtils.isNotBlank("\b") = true
StringUtils.isNotBlank("bob") = true
StringUtils.isNotBlank(" bob ") = true
### `StringUtils.isEmpty()` 与 `StringUtils.isBlank()` 的区别 在 Apache Commons Lang 的 `StringUtils` 类中,`isEmpty()` `isBlank()` 是两个用于判断字符串是否为空的方法,但它们在逻辑语义上有显著的区别。 #### `isEmpty()` 方法 `isEmpty()` 方法用于判断字符串是否为 `null` 或长度为 0。如果字符串是 `null` 或者是一个空字符串(`""`),该方法将返回 `true`。它不考虑字符串中是否包含空白字符。 ```java StringUtils.isEmpty(null) // true StringUtils.isEmpty("") // true StringUtils.isEmpty(" ") // false StringUtils.isEmpty("abc") // false ``` #### `isBlank()` 方法 `isBlank()` 方法则更加严格。它不仅判断字符串是否为 `null` 或空字符串,还进一步检查字符串是否仅由空白字符组成。如果字符串是 `null`、空字符串,或者仅包含空格、制表符、换行符等空白字符,则返回 `true`。 ```java StringUtils.isBlank(null) // true StringUtils.isBlank("") // true StringUtils.isBlank(" ") // true StringUtils.isBlank("\t\n") // true StringUtils.isBlank("abc") // false ``` ### 适用场景 - **`isEmpty()`** 适用于只需要判断字符串是否有内容的场景,例如检查用户是否输入了值。 - **`isBlank()`** 适用于需要排除空白字符的场景,例如验证用户输入是否包含有效字符。 ### 总结 `isEmpty()` 仅检查字符串是否为 `null` 或长度为 0,而 `isBlank()` 则进一步检查字符串是否仅由空白字符组成。根据实际需求选择合适的方法,以确保逻辑的准确性代码的健壮性 [^1]。 --- ```java // 示例代码 public class StringUtilsExample { public static void main(String[] args) { System.out.println(StringUtils.isEmpty(null)); // true System.out.println(StringUtils.isEmpty("")); // true System.out.println(StringUtils.isEmpty(" ")); // false System.out.println(StringUtils.isEmpty("abc")); // false System.out.println(StringUtils.isBlank(null)); // true System.out.println(StringUtils.isBlank("")); // true System.out.println(StringUtils.isBlank(" ")); // true System.out.println(StringUtils.isBlank("\t\n")); // true System.out.println(StringUtils.isBlank("abc")); // false } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值