关于String是否为空的判断

本文深入探讨了在编程中处理空字符串与null的细微差别,并通过实例展示了如何正确地进行判断和处理,避免逻辑错误。

今天做项目时,将A程序传入的String值作为查询参数上报服务器端执行查询操作,若A程序传入的值为空,则使用本地的数据。

本来很Easy,但总是提示传入的参数有问题。

 if (!token.equals("") &&token!= null)
       {
         //执行字符串不为空的操作
        
        }else{
         //执行字符串为空的操作
        }
或者    
if(token.equals("")||token==null)
       {
         //执行字符串为空的操作
         
        }else{
         //执行字符串不为空的操作
         
        }


根据log显示,A程序传入的值是null,但始终执行字符串不为空的操作。

 

搞了半天,最后才发现,A程序传入的String的值是“null”而不是null。

 

真是哭笑不得。

 

针对这种情况将判断条件修改为:

if(token.equals("null"))
       {
         //执行字符串为空的操作
         
        }else{
         //执行字符串不为空的操作
         
        }


这样才执行正确了。

 

 

修改为

Java 中,判断字符串是否是常见的操作,以下是几种常见的判断方法: ### 使用 `isEmpty()` 方法 `isEmpty()` 方法是 `String` 类的一个实例方法,用于判断字符串的长度是否为 0。如果字符串长度为 0,则返回 `true`,否则返回 `false`。 ```java String str = ""; if (str.isEmpty()) { System.out.println("字符串"); } else { System.out.println("字符串不为"); } ``` ### 使用 `length()` 方法 通过比较字符串的长度是否为 0 来判断字符串是否。如果长度为 0,则字符串。 ```java String str = ""; if (str.length() == 0) { System.out.println("字符串"); } else { System.out.println("字符串不为"); } ``` ### 使用 `trim()` 方法结合 `isEmpty()` 当字符串中包含白字符时,使用 `trim()` 方法去除字符串前后的白字符,再使用 `isEmpty()` 方法判断是否。 ```java String str = " "; if (str.trim().isEmpty()) { System.out.println("字符串"); } else { System.out.println("字符串不为"); } ``` ### 使用 Apache Commons Lang 库中的 `StringUtils` 类 `StringUtils` 类提供了 `isEmpty()` 和 `isBlank()` 方法。`isEmpty()` 方法只判断字符串长度是否为 0,而 `isBlank()` 方法会先去除字符串前后的白字符,再判断是否。 ```java import org.apache.commons.lang3.StringUtils; String str = " "; if (StringUtils.isBlank(str)) { System.out.println("字符串"); } else { System.out.println("字符串不为"); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值