当前位置: 代码迷 >> Android >> String的判断有关问题
  详细解决方案

String的判断有关问题

热度:40   发布时间:2016-05-01 18:11:10.0
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一下。
  相关解决方案