2017-04-10 34 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) 
    } 
} 

应该工作。