17370845950

在Java中如何检查字符串是否为空
推荐使用 str == null || str.isEmpty() 直接判断,安全且无需依赖;2. 若项目引入 commons-lang3,可使用 StringUtils.isEmpty(str) 更简洁;3. 自定义 isNullOrEmpty 方法提升复用性;4. Java 8 可选 Optional 写法实现函数式判断。

在Java中检查字符串是否为空,通常需要判断字符串为 null 或长度为0(即空字符串 "")。以下是几种常用且安全的方法。

1. 使用 Objects.isNull() 和 isEmpty()

最常见的方式是结合 Objects.isNull() 和字符串的 isEmpty() 方法:

示例代码:
if (str == null || str.isEmpty()) {
    // 字符串为空或null
}

这种方式避免了调用 isEmpty() 时出现 NullPointerException

2. 使用 Apache Commons Lang 库的 StringUtils

如果你的项目引入了 commons-lang3,可以使用 StringUtils.isBlank()StringUtils.isEmpty()
  • StringUtils.isEmpty(str):判断字符串为 null 或长度为0
  • StringUtils.isBlank(str):额外还会判断是否只包含空白字符(如空格、制表符)
示例:

import org.apache.commons.lang3.StringUtils;
if (StringUtils.isEmpty(str)) {
    // 包括 null 和 ""
}

3. 自定义工具方法

如果不想依赖第三方库,可以封装一个静态方法:

public static boolean isNullOrEmpty(String str) {
    return str == null || str.isEmpty();
}

这样在多个地方调用更简洁。

4. Java 8+ Optional 的写法(可选)

结合 Optional 可以写出更函数式的判断:

Optional.ofNullable(str)
    .map(String::isEmpty)
    .orElse(true);

当 str 为 null 时返回 true,否则判断是否为空字符串。

基本上就这些。推荐日常开发中使用 str == null || str.isEmpty(),简单直接。如果项目已引入 commons-lang3,StringUtils.isEmpty() 更加清晰安全。