关于字符串的比较问题..

snowdyalan 2003-09-11 10:22:50
string astring="this is a string.";
string astring2=astring;
string astring3=new string(astring);

比较结果:asting==astring2->true;
asting!=astring2->false;
asting==astring3->false;
asting!=astring3->true;
astring3所参考到字符串内容和astring的一样
比较的结果是false,为什么啊
...全文
83 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
phoenix7789 2003-09-11
  • 打赏
  • 举报
回复
同意楼上几位说的,字符串内容的比较要用equals方法。

--------------------------
让生命时刻充满着激情!
phantomhu 2003-09-11
  • 打赏
  • 举报
回复
==是用来比较 是否引用了同一个对象
equals 只比较具体的内容
LingFengNB 2003-09-11
  • 打赏
  • 举报
回复
比较的不是字符串的内容,而是比较两个字符串是否是同一个对象,astring2=astring;astring2引用了astring,那么他们是同一个对象,所以是真
astring3=new string(astring);astring3是一个新的字符串,只是内容一样而已,和astring不是同一个对象,所以为假
要比较字符串内容是否相等要用equals();比如astring3.equals(astring);结果是真,因为内容相等


pqds 2003-09-11
  • 打赏
  • 举报
回复
一般字符串的比较用equals();
对象之间一般用 ==
而==比较的一般你为这个对象创建的地址
beyondhyb 2003-09-11
  • 打赏
  • 举报
回复
因为String是一个Class,如果“string astring2=astring;”的话,就会出现在多个reference指向同一个对象。而且用“==”进行比较,是对较的对象。
Wkenny 2003-09-11
  • 打赏
  • 举报
回复
string astring="this is a string.";
string astring2=astring;
string astring3=astring;
geyf 2003-09-11
  • 打赏
  • 举报
回复
字符串的比较用string1.equals(string2);
==比较的是地址啊
Wkenny 2003-09-11
  • 打赏
  • 举报
回复
string astring="this is a string.";
string astring2=astring;
string astring3=astring;
wchar 2003-09-11
  • 打赏
  • 举报
回复
除了一些基本类型,“==”比较不是内容

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧