Я сравниваю поле из массива списков, а другой - с переменной. Те же данные. Проверил ту же длину. Отрезаны для удаления пространств. Оператор if == не удается. Оба являются строковыми данными. Я не понимаю, почему это не удалось, сравнить тест. < /P>
public void findNameOnly(String name) {
for (int j = 0; j < this.myContacts.size(); j++) {
System.out.println("name = " + name);
System.out.println("getname() = " + this.myContacts.get(j).getName());
System.out.println("value of j = " + j);
System.out.println(this.myContacts.get(j).getName().trim() == name.trim());
System.out.println("name length = " + name.length());
System.out.println("getname() length = " + this.myContacts.get(j).getName().length());
if (this.myContacts.get(j).getName().trim() == name.trim()) {
System.out.println("Found SOME record...");
} else {
System.out.println("NO MATCH");
}
}
}
< /code>
Вывод из тестирования: < /p>
Enter an action
---------------
0 - QUIT
1 - START phone
2 - ADD new contact
3 - PRINT list of contacts
4 - FIND contact
5 - REMOVE contact
6 - UPDATE contact
7 - REFRESH this menu
2
Enter new contact name:
Jon
Enter phone number:
321
Enter an action
---------------
0 - QUIT
1 - START phone
2 - ADD new contact
3 - PRINT list of contacts
4 - FIND contact
5 - REMOVE contact
6 - UPDATE contact
7 - REFRESH this menu
4
Enter new contact name:
Jon
name = Jon
getname() = Jon
value of j = 0
false
name length = 3
getname() length = 3
NO MATCH
Подробнее здесь: https://stackoverflow.com/questions/566 ... my-example