我有一个带有HashMap的数组列表
deviceDataCollection = new ArrayList<HashMap<String,String>>();
我必须使用IF-STATMENT从此数组e中检索一些数据,如下面的代码所示:
String DeviceType = deviceDataCollection.get(position).get("var").toString();
//it returns a string: lamp
if (DeviceType == "lamp")
{
// do something
}
问题是:我无法进入IF-STATEMENT。我确定这些数值完全相同。
我不知道该怎么做。
感谢。
答案 0 :(得分:0)
比较字符串时使用equals()
因此,在您的条件中,它应该是DeviceType.equals("lamp")
答案 1 :(得分:0)
比较Java(和Android)中的引用类型时,需要使用.equals()
方法:
if (DeviceType.equals("lamp"))
{
// do something
}
==
通过内存中的某些内容确定相等性,.equals()
将考虑其值。
答案 2 :(得分:0)
使用equals(“lamp”)或equalsIgnoreCase(“lamp”)方法来共同使用两个字符串。
if (DeviceType .equals("lamp"))
{
// do something
}
答案 3 :(得分:0)
使用
if ("lamp".equals(DeviceType))
{
//do something
}
运算符==,测试两个对象引用变量是否引用对象的完全相同的实例。
方法.equals(),测试两个对象是否相互比较 - 但它们不必是同一对象的完全相同的实例。
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html
检查上面链接中的equals方法
答案 4 :(得分:0)
试试这个:
if (DeviceType.equals("lamp"))
{
// do something
}
使用equals
函数比较字符串,而不是==。