Java 字符串空检查

Java 字符串空检查,java,Java,我已经试了两个小时了,但我已经放弃了。我通过以下方式检查字符串的值: if(value.equals("")||value.length()<0||value==null) { value = "Anynomous" } 首先你需要重新排序你的if条件,否则你可能会遇到npe。 此外,字符串长度不能小于0,因此无需进行检查: value==null||value.equals("") 或者,如果您可以使用Apache Commons Lang,您可以使用StringUtils.

我已经试了两个小时了,但我已经放弃了。我通过以下方式检查字符串的值:

if(value.equals("")||value.length()<0||value==null)
{
    value = "Anynomous"
}

首先你需要重新排序你的if条件,否则你可能会遇到npe。 此外,字符串长度不能小于0,因此无需进行检查:

value==null||value.equals("")

或者,如果您可以使用Apache Commons Lang,您可以使用
StringUtils.isEmpty(value)
,它为您处理所有相关案例。

首先检查
value
是否为
null
。否则,
value.equals()
将抛出NullPointerException

 if (value == null || value.equals("")) {
     value = "Anonymous";
 }
value.length()您需要添加

||value.equals("null")
某个地方已经对空值执行了toString()操作。 请注意其他答案-但这是您报告的特定问题的原因

因此,作为一种选择,您最终会:

if ( value==null || value.isEmpty() || "null".equals(value) )

由于空检查,在这种情况下不需要反转.equals(),但这是一个好习惯。

字符串的值是否可能为“空”?(也就是说,不是null,而是一个读取'null'的字符串。)

我认为

value=(String)request.getAttribute(“retunval”)

正在返回一个“null”字符串。 当您尝试执行您提到的if测试时,它将返回false,因为您没有进行检查

value.equals(“null”)


这就是为什么输出为空。

按照Thomas和ig0774的建议重新排序,或者使用的方法。

使用以下方法:

   if(value == null || value.trim().length() <=0 || value.trim().equals("null")){
     value ="Ananymous";
   }

if(value==null | | value.trim().length()我认为这是检查它的最佳条件

如果(value==null | | value.trim().length()==0 | | value.equals(“null”)


如果value=”“包含空格,它也会消除这一事实。

尝试以下操作:if(value==null | | | value.trim().length()==0 | | | value.equalsIgnoreCase(“null”){value=“匿名”}你的条件顺序是错误的,首先检查
==null
。在这种情况下,如果
值==null
你会因为
值而得到
NullPointerException
。首先执行的是equals(“”)
如果(value==null | value.length()==0)value=“匿名”
应该可以。很可能你是通过字符串“null”设置值的某个地方。例如
value=String.format(“%s”,somethingThatIsNull)
将导致
value==“null”
。可能重复使用第三方库来检查
null
对我来说似乎有点多余。检查
null
和空字符串。我认为使用
StringUtils
可以更好地阅读代码,这个库中还有其他有用的方法。只需单击几下maven即可导入依赖性,这不是什么大问题。虽然修复是正确的,但诊断不是。“null”不是空字符串。它不是返回空字符串-它是返回4个字符的字符串“null”。在这个世界上一切都很好,这是公认的答案,但我只想在这里补充一点,当字符串检查时,它应该始终是“null”。等于(值)。也就是说,文本应该始终是第一个操作数。这样可以避免NullPointerExceptionby null string,我也只是指“null”字符串,我认为基于检查值这一点太明显了。等于(“null”)我已经说过了。在equals中,始终使用文字作为第一个操作数仍然是一个很好的做法comparison@ante.sabo:是的,但正如其他人所建议的那样,实际上最好用类似的东西来覆盖它。。。
||value.equals("null")
if ( value==null || value.isEmpty() || "null".equals(value) )
   if(value == null || value.trim().length() <=0 || value.trim().equals("null")){
     value ="Ananymous";
   }