2017-04-10 1 views
-2

Ich habe eine Liste von Wörtern, die ich in ein String-Array umgewandelt habe. Ich frage den Benutzer, ein Zeichen einzugeben, und mein Code muss herausfinden, ob sich dieses Zeichen in einem der Wörter in der Liste der Wörter befindet, und dieses Wort zu einer neuen Liste hinzufügen und aus der ursprünglichen Liste entfernen. Wie mache ich das? Hier istSuchen Sie ein Zeichen in einem Wort in einer Liste von Wörtern und entfernen Sie es aus der ursprünglichen Liste und fügen Sie es zur neuen Liste hinzu.

String[] temps2 = newList.toArray(new String[0]); //turns list to string array. 
System.out.println("\n pick a letter."); 
letter_1 = input.next()charAt(0); 
for (String b : temps2){ 
for(char ch : b.toCharArray()){ 
    if letter_1==ch){ 
     temps2.remove(b);//don't think you can do that. 
+0

Willkommen bei Stack Overflow! Bitte [besuchen Sie die Tour] (http://stackoverflow.com/tour), um zu sehen, wie die Seite funktioniert und welche Fragen hier behandelt werden. Siehe auch: [Warum ist "Kann mir jemand helfen?" keine tatsächliche Frage?] (http://meta.stackoverflow.com/q/284236) –

+1

String hat Methoden, die Sie verwenden können - überprüfen Sie sie, indem Sie die Java String API nachschlagen. –

+0

https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#remove(java.lang.Object) – Compass

Antwort

-1

Wenn sie ein String-Array nicht eine Notwendigkeit für Sie versuchen können, Ihre Arraylist Klonen genannt newList

ArrayList<String> newlist2 = (ArrayList<String>)newList.clone(); 

dann aus dieser Liste können Sie überprüfen, welche Strings haben die char ch und entfernen, die . Dieser Ansatz sollte für Sie einfacher sein, da die Liste Funktionen zum Entfernen von Elementen enthält.

ArrayList<String>finallist = new ArrayList<String>(); 
int i = 0 ; 
for(String s : newlist2) 
{ 
    for(char c : s.toCharArray()) 
    { 
     if(ch == c) 
     { 
     finallist.add(newList2.remove(i)); 
     break; 

     } 
    i++ 

    } 
} 

Auf diese Weise finallist nur die Strings haben, die die char ch

+0

Gab mir diese Fehlermeldung: Exception in thread "main" java.util.ConcurrentModificationException [Fünfte, Sechste, Drei] \t bei java.util.AbstractList $ Itr.checkForComodification (AbstractList.java:372) \t bei java.util. AbstractList $ Itr.next (AbstractList.java:343) \t auf Game.main (Spiel.java:71) –

-1

Statt mit der for-Schleife haben jedes Zeichen zählen, wie Sie

tat

for(char ch : b.toCharArray()){...

Man könnte so etwas tun:

for(int chnum ; chnum = b.length(); chnum++){ 
    char[] chararray = b.toCharArray(); 
    if(letter_1 == chararray[chnum]){ 
     chararray[chnum] = ... (remove it since you have it's array location) 
    } 
} 

sollte funktionieren.

Verwandte Themen