Java 如何判断字符串为空

生活里咱们经常会遇到“空”的情况:比如空的水杯、空白的笔记本,放到编程里,“字符串为空”也是很常见的场景——比如用户没填表单的姓名栏、接口返回了空的提示信息,要是没判断好,程序就容易出小bug,比如直接显示“null”乱码,或者报错崩溃。

---

Java 如何判断字符串为空

先搞懂:Java里的“空”不是只有一种

很多新手刚学Java时,会觉得“字符串空”就是“长度为0”,其实不然,它还有两种常见的“空”状态,像生活里的“空水杯”和“没买水杯”的区别:

第一种是长度为0的空字符串,就像刚拆封的空白笔记本,有本子的外壳,里面一页纸都没有,对应Java里的"";第二种是null空引用,就像你压根没买水杯,手里连杯子的壳都没有,对应Java里的null,意思是这个字符串变量根本没指向任何实际的内容。

举个生活化的例子:你让同事帮你带奶茶,同事说“我没带你要的奶茶”,这就是null;要是同事带了个空杯子过来,这就是""——两种“空”的情况,处理方式完全不一样。

---

基础判断:先排除最容易踩的坑

很多新手写代码时会犯一个小错误:直接用字符串和==判断是否为空,比如if (str == ""),这就像你拿“新买的空白笔记本”和“空笔记本”比,其实它们是两个不同的本子,==比的是“是不是同一个东西”,不是“里面有没有内容”,所以这个判断根本没用。

正确的基础判断,是判断字符串的长度,就像检查笔记本里的页数:如果长度是0,那就是空字符串"",对应的代码是str.length() == 0,或者更简单的str.isEmpty()——这个方法就像直接问“笔记本里有没有内容”,不会搞错。

---

进阶判断:同时搞定null和空字符串

如果要处理用户表单这种场景,你得同时考虑null和空字符串,不然就会出问题:比如你写了if (str.isEmpty()),要是变量是null,程序直接就会崩溃,就像你拿空白笔记本的页数,结果笔记本压根没拿过来,当然报错。

这时候就像你要确认“有没有笔记本,并且笔记本里有没有内容”,得先确认“有没有笔记本”,再确认“有没有内容”。Java里有个很方便的工具类StringUtils(注意是Apache Commons Lang里的,不是Java原生的,开发时一般都会导入这个工具包),它有个方法isBlank(),就专门管这个:不仅能判断null,还能判断全是空格的“伪空”——比如用户只在姓名栏输了几个空格,也会被当成空,这正好对应生活里“你说带奶茶但只带了个空杯子还沾了点灰”的情况,也算无效内容。

如果不想用第三方工具类,也可以自己写判断:str == null || str.trim().isEmpty(),trim()就像把笔记本边缘的折痕、脏东西去掉,把多余的空格删掉,再判断是不是空,这样就能覆盖大部分无效的“空”场景。

---

实际用的小技巧:避免不必要的判断

日常开发里,其实很多场景可以减少判断,比如你从接口拿数据,要是接口返回的字符串默认是空字符串"",而不是null,那直接用isEmpty()就行,不用先判断null。还有,Java 11之后新增了String.isBlank()原生方法,不用导入第三方包,就能直接判断是否为空白字符串,比trim().isEmpty()更简洁,适合新手快速上手。

总结一下,判断Java字符串为空的核心,就是先搞清楚你要处理的“空”是哪种:是“没带东西”的null,还是“带了空东西”的"",或是“带了但没用的空白内容”,选对应的方法来判断,就能少出bug啦。

上一篇 PHP 如何做缩略图