Java 试图从集合中的一对中检测字符串
出于某种原因,my==运算符在应该返回true时没有返回true。我看到两个完全相同的字符串显示在我的手机上,但它仍然没有注册为真。有什么想法吗?它是一个成对的哈希集(string,int)。getFirst返回该对中的字符串Java 试图从集合中的一对中检测字符串,java,android,Java,Android,出于某种原因,my==运算符在应该返回true时没有返回true。我看到两个完全相同的字符串显示在我的手机上,但它仍然没有注册为真。有什么想法吗?它是一个成对的哈希集(string,int)。getFirst返回该对中的字符串 private boolean contains(HashSet<Pair> mySet, String current) { Iterator<Pair> temp = mySet.iterator(); Stri
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;
}
private boolean contains(HashSet mySet,字符串当前){
迭代器temp=mySet.Iterator();
字符串比较;
Toast.makeText(MainActivity.this,“want”+当前,
Toast.LENGTH_LONG).show();
while(temp.hasNext()){
比较=临时下一步().getFirst();
Toast.makeText(MainActivity.this,比较+“”+当前,
吐司。长度(短)。show();
如果(比较==当前)
Toast.makeText(MainActivity.this,“found”,Toast.LENGTH_SHORT.show();
}
返回false;
}
字符串不应与==进行比较。在java中,字符串是对象,并且==将检查它们是否是相同的对象引用。如果要检查它们是否包含相同的字符序列,请使用string.equals(otherString)。字符串不应与==进行比较。在java中,字符串是对象,并且==将检查它们是否是相同的对象引用。如果要检查它们是否包含相同的字符序列,请使用string.equals(otherString)。执行以下操作:
if(compared.equals(current))
改为这样做:
if(compared.equals(current))
使用
String.equals()
方法比较字符串。与在if(string1.equals(string2))…
中一样,使用String.equals()
方法比较字符串。正如在if(string1.equals(string2))…
中一样,这个问题已经被回答了很多次了,现在它甚至一点都不好笑。这个问题已经被回答了很多次了,现在它甚至一点都不好笑,一点都不好笑。