У меня есть 2 списка токенов и аккордов. Они заселены хорошо. Но когда я пытаюсь сравнить 2, они всегда приносят ложное значение, несмотря на то, что печатают одинаковое строковое содержимое при печати отдельно в цикле. Любые идеи/обходные пути?Сравнение элементов списка в java
System.out.println(token.get(i).toString().equals(chords.get(j).toString()));
Оба объявлены как List и инициализированы как ArrayList();
Оба содержат объекты String.
while (i < tokenLength) {
System.out.println("");
int j = 0;
while (j < numberOfChords) {
System.out.println(token.get(i).toString() + " compares "
+ chords.get(j).toString());
System.out.println(token.get(i).toString()
.equals(chords.get(j).toString()));
if (token.get(i).toString() == chords.get(j).toString()
&& token.get(i).toString().length() <= maxLengthOfChord) {
foundChord.add(token.get(i));
}
j++;
}
i++;
}
дает следующий результат:
Я также попытался это
System.out.println(token.get(i).toString().equals(chords.get(j).toString()));
Это всегда дает ложное возвращение такой же результат, как показано на скриншоте
Просьба показать две идентичные строки (не забывая о каких-либо ведущих/конечных пробелах и т. Д.). – NPE
Также trim() ваши строки ... – Pragnani
Если оба являются строками, тогда какая точка 'toString()' вызывает оба. –