怎么样在jsp中比较两个字符串是否相等?(菜鸟发问)

xiaocainiao128 2004-12-23 01:21:19
怎么样在jsp中比较两个字符串是否相等?我用
String str1,str2;
str1="test";
str2="test";
System.out.print(str1==str2);

相比较的时候为什么会返回false?
如果
str1="test";
str2=str1;
System.out.print(str1==str2);
就返回的是true呢?

请解释一下原理,并给出适合的方法
...全文
958 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xiaocainiao128 2004-12-23
谢谢,各位了
回复
kaymo 2004-12-23
When the intern method is invoked, if the pool already contains a string equal to this String object as determined by the equals(Object) method, then the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned.

It follows that for any two strings s and t, s.intern() == t.intern() is true if and only if s.equals(t) is true.

回复
xiaocainiao128 2004-12-23
str1.intern()
intern()这个函数是什么意思?把str1指向地址中的内容取出来吗?
回复
kaymo 2004-12-23
用这个也可以System.out.print( str1.intern() == str2.intern() );
回复
classjava 2004-12-23
怎么样在jsp中比较两个字符串是否相等?我用
String str1,str2;
str1="test";
str2="test";
System.out.print(str1==str2);//比较是否同个对象

相比较的时候为什么会返回false?
如果
str1="test";
str2=str1;//这里str2指向str1,当然是同个对象
System.out.print(str1==str2);//
就返回的是true呢?

请解释一下原理,并给出适合的方法//用equals比较内容
回复
simon810610 2004-12-23
System.out.println(str1.equals(str2));
回复
alpha15 2004-12-23
在java中字符串是不能用==来比较的
应使用楼上说的那两个方法
回复
fashchina 2004-12-23
up
回复
jFresH_MaN 2004-12-23
equals
回复
kiss0931 2004-12-23
str1==str2 比较的是两个对象指向的地址是否相同,而不是string的内容,所以当你第一次比较的时侯它会返回false,第二次你是用str1指向的地址赋值给str2,它们两个指的是同一个地址,所以返true.

建议用:
1.
equals() 比较的是字符串内容,那就是比较的是对象
str1.equals(str2) 注意,当str1为空的时候会产生异常

2.
compareTo()
用:String对象.compareTo(待比较String对象) 来返回一个Int类型值,共有三种情况:

String对象>待比较String对象 返回值大于零
String对象=待比较String对象 返回值等于零
String对象<待比较String对象 返回值小于零
回复
kaymo 2004-12-23
用equals比较的使两个String的内容,所以当你str1.equals(str2)的时候会返回true
回复
kaymo 2004-12-23
System.out.print(str1==str2);你比较的是内存地址,两个不同对象,当然是返回false拉
而下面的str2=str1;使str2这个引用指向str1引用所指的对象,所以会返回true拉
回复
IceCraft 2004-12-23
使用str1.equals(str2)比较
==比较的是两个引用是否指向同一个对象,第一种方式你是分别给这两个引用赋值的,当然不是一个对象了。
第二种方式两个引用其实都指向同一个对象,==就是true了。
比较制是否相等要用equals方法。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-12-23 01:21
社区公告
暂无公告