查询字符串如果语句比较

时间:2013-11-27 10:00:53

标签: java

这应该非常简单,但这让我很难过!

假设我有一个页面: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>" );
}

6 个答案:

答案 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)

您可以使用contentEquals作为字符串。

这个 link 解释了你不同的{/ 1}}和equal

contentEquals

答案 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))