String st="GUEST";
if(st!="GUEST")
System.out.println("1");
else
System.out.println("2");
会出现结果1,为什么???怎么得到我想要的结果??
------解决方案--------------------
字符串比较 请用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一下。