日期:2014-05-20  浏览次数:20646 次

初学者:请大虾们帮我看一下==比较符为什么不好使呢??
class   Test{
public   static   void   main(String[]   args){
if(args.length!=1){
return;
}
String   s=args[0].trim();
System.out.println(s);
if(s== "good "){
System.out.println( "OK ");
}
else{
System.out.println( "ERROR ");
}
}
}

我在控制台输入的是good可是为什么打印的还是ERROR呢?
我把if(s== "good ")改成if(s.equals( "good "))就好使了,这是为什么呢,

------解决方案--------------------
String是类......
------解决方案--------------------
固定搭配
你记好了就可以了~
HOHO~~
------解决方案--------------------
==是比较是否是同一块内存

equals是比较逻辑值
------解决方案--------------------
crazycy(崔毅,blog:http://www.blogjava.net/crazycy/) ( ) 信誉:101 Blog 2007-01-21 22:33:33 得分: 0


==是比较是否是同一块内存

equals是比较逻辑值


===================================================================
高手都说了,我就不重复了
------解决方案--------------------
好好去看看String里面的方法吧
------解决方案--------------------
==比较的是内存地址
equals()比较内容
如果你和 "good "显然他们的地址不一样,所以为false
------解决方案--------------------
String 是对象 对象比较用equals()比较 ==是值之间比较
------解决方案--------------------
基础问题
------解决方案--------------------
==比较的是内存地址
equals()比较内容
如果你和 "good "显然他们的地址不一样,所以为false


同意,同意!

String str= "aaa ";
String str= "aaa ";
这个可以用==
------解决方案--------------------
你可以简单的认为,==是进行值比较,是对确切的值进行判断,而equals是进行字符比较