当前位置: 技术问答>java相关
兄弟们快帮我来看看,奇怪的不能在奇怪的问题.我晕倒后有爬起来.
来源: 互联网 发布时间:2017-04-14
本文导语: 问题是以下这段程序: String query1; if (query1 == "test") { forward = "FAILED"; return mapping.findForward(forward); } 无论如何IF条件判断也无法为TRUE. -------------------------------------------- ...
问题是以下这段程序:
String query1;
if (query1 == "test") {
forward = "FAILED";
return mapping.findForward(forward);
}
无论如何IF条件判断也无法为TRUE.
--------------------------------------------
我进行了以下测试:
String query1;
System.out.print(query1);
System.out.print(query1.length());
if (query1 == "test") {
forward = "FAILED";
return mapping.findForward(forward);
}
屏幕输出:test4
但是IF条件判断也无法为TRUE.
下面是完整程序:
package com.search.action;
import javax.servlet.http.*;
import org.apache.struts.action.*;
public class searchAction extends Action {
/** @param mapping
* @param form
* @param request
* @param response */
public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
{
searchForm theForm = (searchForm)form;
String query1 = theForm.getQuery1();
String forward = "SUCCESS";
// check the initial data
if (query1 == "test") {
forward = "FAILED";
return mapping.findForward(forward);
}
return mapping.findForward(forward);
}
}
救救我吧! 我的头都大了.和字符集有关系吗?
String query1;
if (query1 == "test") {
forward = "FAILED";
return mapping.findForward(forward);
}
无论如何IF条件判断也无法为TRUE.
--------------------------------------------
我进行了以下测试:
String query1;
System.out.print(query1);
System.out.print(query1.length());
if (query1 == "test") {
forward = "FAILED";
return mapping.findForward(forward);
}
屏幕输出:test4
但是IF条件判断也无法为TRUE.
下面是完整程序:
package com.search.action;
import javax.servlet.http.*;
import org.apache.struts.action.*;
public class searchAction extends Action {
/** @param mapping
* @param form
* @param request
* @param response */
public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
{
searchForm theForm = (searchForm)form;
String query1 = theForm.getQuery1();
String forward = "SUCCESS";
// check the initial data
if (query1 == "test") {
forward = "FAILED";
return mapping.findForward(forward);
}
return mapping.findForward(forward);
}
}
救救我吧! 我的头都大了.和字符集有关系吗?
|
if (query1 == "test") {
query1是一个字符串,
"test"也是一个字符串/
当像上面比较的时候,比较的两个字符的handle,所以是不为true的
用equals()就可以。
再java中除了基本数据类型以外,别的都是使用的对象的handle的。
要判断两个对象的关系,不要使用==,使用euqals比较好
query1是一个字符串,
"test"也是一个字符串/
当像上面比较的时候,比较的两个字符的handle,所以是不为true的
用equals()就可以。
再java中除了基本数据类型以外,别的都是使用的对象的handle的。
要判断两个对象的关系,不要使用==,使用euqals比较好
|
==比较对象内存地址,不是比较内容。
|
如果虚拟机总是把相等的串安排为共享,那么可以使用==来测试它们是否相等。
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。