这应该非常简单,但这让我很难过!
假设我有一个页面:mysite.com/mypage.jsp
当它被提交给自己时,网址是:mysite.com/mypage.jsp?myvalue=blah
我有以下代码,这些代码永远不等于真,我做错了什么?
String myvalue = request.getParameter("myvalue");
if ( myvalue == "blah" ) {
out.print("<h3>You submitted the page, my value = " + myvalue + "</h3>" );
} else {
out.print("<h3>Page not submitted yet, my value = " + myvalue + "</h3>" );
}
答案 0 :(得分:2)
替换if ( myvalue == "blah" ) {
如果( myvalue.equals("blah") ) {
String myvalue = request.getParameter("myvalue");
if ( myvalue.equals("blah" )) {
out.print("<h3>You submitted the page, my value = " + myvalue + "</h3>" );
} else {
out.print("<h3>Page not submitted yet, my value = " + myvalue + "</h3>" );
}
答案 1 :(得分:1)
答案 2 :(得分:0)
要比较java中的String对象,请使用.equals()方法而不是“==”运算符
替换以下代码
if ( myvalue == "blah" )
到
if ( "blah".equals(myvalue))
如果你想忽略大小写使用equalsIgnoreCase()
if ( "blah".equalsIgnoreCase(myvalue))
答案 3 :(得分:0)
我有以下代码永远不等于真,我是什么 做错了?
您应该使用equals
方法而不是==
。尝试使用null safe equals
。
"blah".equals(myvalue)
答案 4 :(得分:0)
使用equals()
或equalsIgnoreCase()
myvalue.equalsIgnoreCase("blah")
答案 5 :(得分:0)
与上面的每个人一样,您需要使用.equals进行字符串比较,否则它会比较对象而不是字符内容。
你还应该知道,当使用.equals时,你应该总是把常量放在左边,以避免空指针。
可怕:
// because strings are objects, this just compares the 2 objects with each other,
//and they won't be the same, even if the content is, they are separate instances.
if (myvalue == "blah")
为:
//if you didn't have a myvalue, this would go bang
//(unless you add a null check in as well)
if (myvalue.equals("blah"))
好:
if ("blah".equals(myvalue))