最推荐使用 StringUtils.isBlank() 方法,它安全处理 null、空字符串和纯空白字符;Java 11+ 可用 str == null || str.isBlank() 替代;避免 str.equals("") 等易抛 NPE 的写法。

Java 中判断字符串是否为空或空白,最常用且推荐的方式是使用 Apache Commons Lang 库的 StringUtils.isBlank() 方法。它能同时处理 null、空字符串("")和纯空白字符(如 "\t \n")这三种情况,安全又简洁。
用 StringUtils.isBlank() —— 最稳妥的选择
这是业界广泛采用的标准做法,避免手动判空出错:
- 自动检查
null,不会抛NullPointerException - 把只含空白符(空格、制表符、换行符等)的字符串也视为“空白”
- 需引入依赖:
org.apache.commons:commons-lang3
示例:
String str = " \t\n";boolean isEmptyOrBlank = StringUtils.isBlank(str); // true
用 Java 11+ 的 isBlank() —— 原生替代方案
Java 11 起,String 类新增了 isBlank() 方法,但注意:它**不处理 null**,调用前仍需单独判空:
立即学习“Java免费学习笔记(深入)”;
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
str == null || str.isBlank()才等价于StringUtils.isBlank(str) -
isBlank()内部会检查每个字符是否为 Unicode 空白(比isEmpty()更严格)
示例:
String str = null;boolean result = str == null || str.isBlank(); // 安全
避免常见错误写法
这些方式容易漏判或抛异常:
-
str.equals(""):str为null时直接报错 -
str.length() == 0:同样对null不安全 -
str.trim().length() == 0:虽能过滤空白,但null仍会 NPE,且trim()创建新字符串,略低效
如果不用第三方库又不想升级 Java 版本
可封装一个工具方法,兼顾安全与可读性:
public static boolean isBlank(String str) {return str == null || str.trim().isEmpty();
}
这个写法兼容 Java 6+,逻辑清晰,覆盖全部典型空值场景。

















