java - java中字符串的空值检查

标签 java

a=nullb=null时,它抛出NPE

String a,b;

if ((aValue.equals("null")||aValue==null||aValue.isEmpty()) && 
(!bValue.equals("null")||bValue!=null || !bValue.isEmpty()))

我想检查a何时没有值而b何时有值。 如何在没有任何库的情况下使其正确且高效。

最佳答案

必须首先检查

aValue==null,因为表达式是从左到右计算的,并且 aValue.equals("null") 会抛出 NullPointerException 如果 aValue==null

bValue 的检查应该在它们之间有 && (AND) 条件,因为您要求 bValue 有一个值。同样,应首先评估 bValue!=null

if ((aValue==null||aValue.equals("null")||aValue.isEmpty()) && 
(bValue!=null && !bValue.equals("null") && !bValue.isEmpty()))

顺便说一句,您是否期望 aValuebValue 包含 String“null”?这样的值(value)是否代表“没有值(value)”?如果不是这种情况,则不需要 .equals("null") 测试。

关于java - java中字符串的空值检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422688/

相关文章:

java - 登录 Spark

java - JSP 中的 Servlet

java - Java中通过正则表达式查找字符串中重复的字符序列

java - 接收多行输入并将其连接成单个字符串以在 Java 控制台应用程序中执行某些操作

java - 启用对象映射器 writeValueAsString 方法以包含空值

java - 相对于其他项目的排序 - 比较方法违反了其一般契约

java - 为什么我不能正确检索数据?

带有 sudo 的 Java 包装器脚本不起作用

java - 分析驻留在队列 RabbitMQ 中的消息

java - 在 javax.mail 中发送邮件,无需身份验证