Categories
CS

Java 字符串相等判断 失效

最近写安卓一直遇到一个问题:

一个变量是一个字符串 String content =”inbox”;

当用if(content)
String sign = msg.getData().getString(“sign”);
sign = sign.toLowerCase();
Log.e(“MainActivity”, “sign is”+sign);
System.out.println(“sign is What????”);
if (sign==”inbox”) {
// do sth
}

通过System.out.print 可以知道sign 的值就是 “inbox”
但是真个判断就是不成功,纪委郁闷,基础我的解决方案是用长度 sign.length()=4 来进行判断

后来又遇到这种问题,网上搜索才知道Java 有个字符串池的概念
== 对于基本类型是 判断内容是否相等,
对于对象则是判断地址是否相等
这里原因就是出现在这,所以解决方案是用
if (sign.equals(“inbox”)) {
// do sth
}

参考:
http://blog.csdn.net/zw_2011/article/details/6431184
http://www.cnblogs.com/skyhanjw/archive/2012/05/04/2482645.html

Leave a Reply

Your email address will not be published. Required fields are marked *