2017-04-10 43 views
-2

我有一個單詞列表,我已經變成了一個字符串數組。我要求用戶輸入一個字符,並且我的代碼必須查明該字符是否在單詞列表中的某個單詞中,並將該單詞添加到新列表中並從原始列表中刪除。我怎麼做?這裏的在單詞列表中查找單詞中的字符,並從原始列表中刪除並添加到新列表中

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

歡迎來到Stack Overflow!請[參觀](http://stackoverflow.com/tour)瞭解網站的工作原理以及在這裏的主題。另請參閱:[爲什麼「有人可以幫我嗎?」不是一個實際的問題?](http://meta.stackoverflow.com/q/284236) –

+1

字符串有你可以使用的方法 - 通過查找Java字符串API檢查它們。 –

+0

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

回答

-1

如果做一個String數組是不是一個必要性,你可以嘗試克隆ArrayList中稱爲newList

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

然後,從這個列表中可以檢查哪些字符串也有炭ch和 刪除。這種方法對於你來說應該更容易,因爲列表具有刪除元素的功能。

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++ 

    } 
} 

這樣finallist將只有有炭CH

+0

給了我這個錯誤:異常線程 「main」 java.util.ConcurrentModificationException [第五,第六,三] \t在java.util.AbstractList中的$ Itr.checkForComodification(AbstractList.java:372) \t在java.util中。 AbstractList $ Itr.next(AbstractList.java:343) \t at Game.main(Game.java:71) –

-1

而是具有琴絃的for循環計算每一個字符像你這樣

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

你可以做這樣的事情:

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) 
    } 
} 

應該工作。

相關問題