2012-07-16 21 views
0

由于某些原因,我的==运算符在它应该返回时不会返回true。我看到两个完全相同的字符串显示在我的手机上,但它仍然没有注册为真实。有任何想法吗?它是pair(string,int)的哈希集合。 getFirst返回该对中的字符串。试图从一组中检测一个字符串

private boolean contains(HashSet<Pair> mySet, String current) { 
     Iterator<Pair> temp = mySet.iterator(); 
     String compared; 
     Toast.makeText(MainActivity.this, " want " +current, 
       Toast.LENGTH_LONG).show(); 
     while (temp.hasNext()) { 
      compared = temp.next().getFirst(); 


       Toast.makeText(MainActivity.this, compared+" "+current, 
         Toast.LENGTH_SHORT).show(); 
       if (compared==current) 
        Toast.makeText(MainActivity.this, "found", Toast.LENGTH_SHORT).show(); 
     } 


     return false; 
    } 
+1

这个问题已经回答了很多次,现在它甚至不好笑 – Woot4Moo 2012-07-17 00:23:29

+0

这是一个有点搞笑,悲伤的方式。 – dmon 2012-07-17 00:30:50

回答

3

不应将字符串与==比较。在Java中,字符串是对象,==会检查它们是否是相同的对象引用。如果您想检查它们是否包含相同的字符序列,请使用string.equals(otherString)。

1

而是执行此操作:

if(compared.equals(current)) 
0

使用String.equals()方法比较字符串。如if (string1.equals(string2))...

相关问题