在单词列表中的单词中查找字符并从原始列表中删除并添加到新列表中

时间:2017-04-10 21:23:43

标签: java

我有一个单词列表,我已经变成了一个字符串数组。我要求用户输入一个字符,我的代码必须找到该字符是否在单词列表中的一个单词中,并将该单词添加到新列表中并从原始列表中删除。我怎么做?这里的

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. 

2 个答案:

答案 0 :(得分:-1)

如果不需要创建String数组,可以尝试克隆名为newList的ArrayList

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

然后从这个列表中你可以检查哪些字符串有char ch和 删除。这种方法应该更容易,因为list具有删除元素的功能。

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将只有具有char ch

的字符串

答案 1 :(得分:-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)
    }
}

应该有用。