注册 登录
编程论坛 J2EE论坛

请教一个比较字符串的问题

msgbox 发布于 2006-08-09 16:55, 767 次点击

string str1,str2,str3;
str1="welcome to JSP";
str2="welcome to";
str3=str2+" JSP";
if(str1==str3)
out.print("YES");
else
out.print("NO"):

结果是NO,为什么啊?

10 回复
#2
可可℃乐2006-08-09 18:24
==比较的是比较两个字符串的值和两个字符串的栈空间是否都相当。
如果你想比较两个字符串的值是否相等你可以用equals,他只比较两个字符串的值。
#3
无理取闹2006-08-09 22:03
两个对象放的地方当然不一样了
#4
zlotus2006-08-10 09:55
在java里,string是对象,比较对象不用==
#5
msgbox2006-08-10 10:38
首先谢谢大家的回答!再看看下面这个例子
String str1="welcome to JSP";
String str2="welcome to JSP";
if(str1==str2)
out.print("yes");
else
out.print("no");

这个例子的输出结果是?
#6
可可℃乐2006-08-10 15:39

应该是NO吧

#7
bagger2006-08-11 12:08
String比较用EQUALS()
用 ==
是不对的
#8
神vLinux飘飘2006-08-11 13:21

都是="welcome to JSP"; 呵呵

#9
lanty52062006-08-17 14:36

要比较字符串最好用equals,况且str1="welcome to JSP"!=str3=str2+" JSP",
str3="welcome toJSP"

#10
小笨鸟2006-08-24 13:55

String str1="welcome to JSP";
String str2="welcome to JSP";
if(str1==str2)
out.print("yes");
else
out.print("no");

这个例子的输出结果是YES,

你如果用new string定义就不一样了,
String str1=new string ("welcome to JSP");
String str2=new string ("welcome to JSP");
if(str1==str2)
out.print("yes");
else
out.print("no");
这个例子的输出结果是NO.

#11
bagger2006-08-25 07:51
String 是对象,虽然内容一样但是他们是不同的个体
所以是NO
String内容比较用EQUALS就好了
1