出于某种原因,我的 == 运算符在应该返回 true 时却没有返回 true。我看到手机上显示了两个完全相同的字符串,但它仍然没有注册为 true。有任何想法吗?它是一个 (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;
}
最佳答案
字符串不应该与 == 进行比较。在java中,字符串是对象,==将检查它们是否是同一个对象引用。如果您想检查它们是否包含相同的字符序列,请使用 string.equals(otherString)。
关于java - 尝试从一组中的一对中检测字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11514291/