推荐用 string.isempty() 和 string.isblank():isempty() 仅判断长度为0,不忽略空白符;isblank() 判断全为空白字符或空串,java 11+ 支持;二者均需先判 null。

Java 中判断字符串是否为空或空白,推荐用 String.isEmpty() 和 String.isBlank(),它们语义清晰、安全高效,且无需引入第三方库。
isEmpty():只看长度,不处理空格
isEmpty() 是 Java 6 就有的方法,它只检查字符串长度是否为 0。只要 length() == 0,就返回 true;否则返回 false。它**不会忽略空格、制表符或换行符**。
-
"".isEmpty()→ true -
" ".isEmpty()→ false(注意:一个空格也是非空字符串) -
"\t\n".isEmpty()→ false -
null.isEmpty()→ 抛出 NullPointerException(必须先判 null)
isBlank():真正判断“空白”,Java 11+ 才有
isBlank() 是 Java 11 新增的方法,它会检查字符串是否「全由空白字符组成,或长度为 0」。这里的“空白字符”包括空格、\t、\n、\r、\u00A0(不间断空格)等符合 Character.isWhitespace() 的字符。
-
"".isBlank()→ true -
" ".isBlank()→ true -
"\t\n\r".isBlank()→ true -
" a ".isBlank()→ false(含非空白字符) -
null.isBlank()→ 抛出 NullPointerException
安全使用:务必先判 null
两个方法都不支持 null,直接调用会报错。稳妥写法是先用 Objects.isNull() 或三元判断:
- 推荐:
str != null && str.isEmpty() - 推荐:
str != null && str.isBlank() - 或用
Objects.toString(str, "").isEmpty()(把 null 转成空串再判断) - 避免:
str.isEmpty()(未判 null 时危险)
对比总结:选哪个?
想确认字符串是否「完全没内容」→ 用 isEmpty();
想确认字符串是否「没有有效可见内容(含纯空格/换行)」→ 用 isBlank()(需 Java 11+);
老版本 Java(str != null && str.trim().isEmpty(),但注意 trim() 不处理 Unicode 空白(如 ),而 isBlank() 可以。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











