最近写安卓一直遇到一个问题:
一个变量是一个字符串 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