我已经尝试了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>
答案 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 =“”包含空格,它也会消除事实。