字符串null检查

时间:2011-09-23 11:55:30

标签: java

我已经尝试了2个小时,但我已经放弃了。我这样检查String的值:

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

但字符串仍在打印值null

请在此处查看此程序代码

<HTML>
<BODY>

<%!
String value ;
%>

<%

value = (String)request.getAttribute("retunval");
System.out.println("Inside New fgdf JSP");
if(value.equals("")||value.length()<0||value==null)
value = "Anonymuos";


%>
Hello <%=value%>

<BR>
</BR>

<BR>
</BR>

<a href="Test.jsp">Try Again</a>
</BODY>
</HTML>

10 个答案:

答案 0 :(得分:5)

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

 if (value == null || value.equals("")) {
     value = "Anonymous";
 }

答案 1 :(得分:3)

首先,您需要重新排序if条件,否则可能会遇到NPE。 此外,字符串长度永远不能低于0,因此不需要检查:

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

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

答案 2 :(得分:3)

您需要添加

||value.equals("null")

某些地方已经在null值上执行了toString()。 请注意其他答案 - 但这是您报告的特定问题的原因。

所以你最终会选择:

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

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

答案 3 :(得分:2)

我想

  

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

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

  

value.equals( “空”)

这就是为什么你输出为null。

答案 4 :(得分:1)

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

第二和第三个条件永远无法评估为真! (字符串的长度永远不能小于零,如果值为null,value.equals("")会导致NullPointerException

试试这个:

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

答案 5 :(得分:1)

value.length()<0永远不会成真 - 请改用value.length()==0。但是,在这种情况下,先前的检查(value.equals(""))与此相同,因此您可以省略它。除此之外,条件应该检测空/空字符串(除了应该首先进行空检查,以避免取消引用空指针)。

value是否包含文字"null"

答案 6 :(得分:0)

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

答案 7 :(得分:0)

重新排序为Thomas和ig0774建议或使用StringUtils.isEmpty()Apache Commons Lang方法。

答案 8 :(得分:0)

使用此:

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

答案 9 :(得分:0)

我认为这是检查它的最佳条件

if(value == null || value.trim()。length()== 0 || value.equals(“null”))

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