私は2つのリストトークンとコードを持っています。それらは大丈夫です。しかし、2を比較しようとすると、ループで別々に印刷されたときに同じ文字列コンテンツを印刷したにもかかわらず、常にfalse値が生成されます。アイデア/回避策はありますか?
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()));
スクリーンショットに示されているのと同じ結果を返すfalseが常に生成されます