Я сравниваю поле из массива списков, а другой - с переменной. Те же данные. Проверил ту же длину. Отрезаны для удаления пространств. If == Оператор не выполняется. < /P>
Я попробовал диагностический код, чтобы визуально увидеть сравниваемые данные, показать длину данных и обрезать данные до того же размера. Оба являются строковыми данными. Я не понимаю, почему это не удалось, сравнить тест. < /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>
Введите действие < /h2>
0 - quit
1 - Пуск
2 - добавить новый контакт. Обновите это меню
2
Введите новое имя контакта:
Jon
Введите номер телефона:
321 < /p>
Введите действие < /h2>
0 - quit
1 - Start Phone
ud ucte contact
3 - print of afte of the Contact
- 3 - Print of Print of 4 - Print of 4 - Print of. /> 5 - Удалить контакт
6 - Обновление контакт
7 - Обновить это меню
4
Введите новое имя контакта:
Jon
name = Jon < /p>
getname() = Jon
< /code>
Значение j = 0
false
name length = 3 < /p>
getname() length = 3
< /code>
Нет совпадения < /p>
Подробнее здесь: https://stackoverflow.com/questions/566 ... my-example