Ich habe Probleme mit dem Vergleich von zwei Strings in meiner Schleife.Vergleichen von zwei Strings in ArrayList
Angenommen, ich möchte zwei Wörter in eine ArrayList einfügen. Ich beschreibe beide Wörter über inputDialogeBox und lege sie in die Liste. Wenn die beiden Wörter identisch sind, wird das zweite Wort nicht zur Liste hinzugefügt.
Aber wenn ich die zwei Zeichenfolgen vergleiche, scheint das Programm nicht zu interessieren, wenn sie identisch sind und beide in der Liste enden.
Heres mein Code:
package testing;
import javax.swing.*;
public class Testing {
public static void main(String[] args) {
Word c = new Word();
// word 1
String word;
word = JOptionPane.showInputDialog("Write a word: ");
System.out.println("word1 = " + word);
c.setWord(word);
// word 2
word = JOptionPane.showInputDialog("Write a new word: ");
System.out.println("word2 = " + word);
c.setWord(word); // sätt kortet≤
System.out.println("words = " + c.getWord().size() + " " + c.getWord());
}
}
Und meine Klasse:
package testing;
import java.util.ArrayList;
public class Word {
ArrayList<String> words = new ArrayList<>();
public void setWord(String word) {
// set first value in arraylist to start the loop
if (words.isEmpty()) {
words.add("default");
}
for (int i = 0; i < words.size(); i++) {
if (!words.get(i).equals(word)) {
words.add(word);
System.out.println("words.get(i): " + words.get(i) + " word: " + word);
break;
}
}
}
public ArrayList getWord() {
return words;
}
}
Meine Vermutung ist, dass das Problem um, das ich hinzufügen, ein Default, nur um etwas zu bekommen mit einer Schleife. Ansonsten, wenn die ArrayList leer ist, kann ich meine Schleife nicht starten. Aber vielleicht gibt es einen besseren Weg?
Dank
Sie fügen das Wort der Liste hinzu, wenn * irgendwelche * Wörter in der Liste vorhanden sind, die nicht das Wort ist. – Andreas
Entschuldigung. Ich bin ein Anfänger :-)
1) Wenn die ArrayList ist leer - fügen Sie einen ersten Wert in die Liste 2) Ich Schleife durch diesen einzigen Wert. 3) Wenn die Zeichenfolge (Standard) nicht mit dem ersten Wort übereinstimmt, wird das erste Wort der ArrayList hinzugefügt 4) Wenn die Zeichenfolge (Standard und word1) nicht das zweite Wort ist, wird sie der ArrayList hinzugefügt Aber ich denke, ich vermassle es :-) – acroscene
Wenn Sie Dubletten verhindern wollen, verwenden Sie ein Set, keine Liste. –