String的判断有关问题

String的判断问题String stGUESTif(st!GUEST)System.out.println(1)elseSystem.out.println(2

String的判断问题
String st="GUEST";
if(st!="GUEST")
System.out.println("1");
else
System.out.println("2");

会出现结果1,为什么???怎么得到我想要的结果??

[解决办法]
字符串比较 请用equals
[解决办法]

探讨

字符串比较 请用equals

[解决办法]
==号不仅仅比较的是两者之间的值、类型还要比较其hashcode值
if(st!="GUEST")两者所指向的 hashcode不同 所以判定为true 输出 1
equals只比较两者之间的值、类型

另外提个小小建议,以后记得加上{}号 以免引起不必要的错误~ 当然你这段代码加不加无所谓!
String st="GUEST";
if(st!="GUEST"){
System.out.println("1");
}else{
System.out.println("2");
}


[解决办法]
是的,用equals比较好,
对于"".equals这种情况比较多。
[解决办法]
当我在一次项目中字符串的比较用的“==”让我查了很久很久没有找出错误之后,我的字符串比较再也不用“==”,只用equals.关于这两者之间的区别,google一下。