我在使用我类的这种方法时遇到了问题。它总是返回 false。 乘客是一个单独的类。这是我的 Train 类中的一个方法,它创建一个 Passenger 对象的数组列表。我正在制作一种方法,该方法将在 ArrayList passengerList 中搜索以名称作为参数的 Passanger 对象。
public boolean search(String a){
Passenger temp;
boolean query = false;
for (int i =0; i<passengerList.size(); i++)
{
temp=passengerList.get(i);
if (temp.getName() == a)
{
query = true;
}
}
return query;
}
最佳答案
if (temp.getName() == a)
应该是
if (temp.getName().equals(a))
字符串比较应始终使用 equals() 方法而不是 ==(字符串文字除外)。
如果 temp.getName()
和 a
都没有指向同一个对象,== 条件将失败。
==
检查引用是否相等。 equals()
检查内容是否相等。
这tutorial可能对你有帮助。
关于java - 在 ArrayList 中搜索字符串;总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13368426/