2013-05-02 77 views
-3

我有一个数组列表与HashMap的问题<HashMap的<字符串,字符串>>和if语句

deviceDataCollection = new ArrayList<HashMap<String,String>>(); 

我必须检索该阵列电一些数据进行比较,使用IF-STATMENT,像代码如下:

String DeviceType = deviceDataCollection.get(position).get("var").toString(); 
//it returns a string: lamp 

if (DeviceType == "lamp") 
{ 
     // do something 
} 

问题是:我无法进入IF-STATEMENT。我确定这些值是完全一样的。

我不知道该怎么做。

谢谢。

+1

请参阅我的[回复](http://stackoverflow.com/a/16329952/2024761)! 'if(“lamp”.equals(DeviceType))'是你需要的! – SudoRahul 2013-05-02 03:48:33

回答

0

使用equals(“lamp”)或equalsIgnoreCase(“lamp”)方法来包含两个字符串。

if (DeviceType .equals("lamp")) 
{ 
    // do something 
    } 
+0

谢谢。它工作完美。 – user2341575 2013-05-02 15:58:28

+0

@ user2341575你刚刚投票和unvote? – Raghunandan 2013-05-02 16:04:03

0

比较字符串时,使用equals()方法

因此,在你的条件应该是DeviceType.equals("lamp")

0

当您在Java(和Android)比较引用类型,你需要使用.equals()方法:

if (DeviceType.equals("lamp")) 
{ 
     // do something 
} 

==通过何时在内存中确定相等性,.equals()将考虑其值。

0

使用

if ("lamp".equals(DeviceType)) 
    { 
      //do something 
    } 

操作,==,测试,看看如果两个对象引用变量指向的对象完全相同的实例。

方法.equals()测试以查看两个对象是否相互比较 - 但它们不需要是同一对象的完全相同的实例。

http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

入住链接equals方法上面

0

试试这个:

if (DeviceType.equals("lamp")) 
{ 
    // do something 
} 

字符串使用equals功能,不比较==。

相关问题