如何从链表中删除以元音作为 Java 中第一个字符的单词



这是我第一次使用链接表。我了解如何正确迭代它,以及如何设置一个。我遇到的问题是我不确定如何正确地进行梳理,检查单词的第一个字母是否是元音,如果是这样,请从列表中删除该单词。这是我到目前为止的代码:

 import java.util.*;
 public class LinkedListExample 
 {
 public static void main(String args[]) 
 {
     //Linked List Declaration 
     LinkedList<String> linkedlist = new LinkedList<String>();
     Scanner sc=new Scanner(System.in); 
     for(int i = 0; i<4; i++)//filling the list
         {
          System.out.println("What is your word?");
          String yourValue = sc.next();
          linkedlist.add(yourValue);
          sc.nextLine();
         }
      Iterator<String> i = linkedlist.iterator();
      while (i.hasNext()) 
     {
          String vowels = "aeiouy";
         //Need to remove the words with the vowels as the first letter here
     }
    while(i.hasNext())//printing out new list
    {
        System.out.println(i.next());
    }
 }
}

我知道我必须使用 for 循环来完成这项工作。我的第一个想法是使用 for 循环来检查我的字符串元音,但我不确定如何使用链表来使其工作。我也不确定在使用迭代器遍历链表时如何在此处删除某些内容。

    List<String> filteredList = list.stream().filter(n->n.startsWith("a")||n.startsWith("e")||n.startsWith("i")||n.startsWith("o")||n.startsWith("u")).collect(Collectors.toList());
    List<String> unique = new ArrayList<String>(list);
unique.removeAll(filteredList);
    unique.forEach(System.out::println);

这里制作了一个数组列表,其中包含以 a,e,i,o,u 开头的单词,然后我创建了一个包含所有元素的数组列表,然后我删除了过滤列表中存在的元素唯一列表是您需要的列表。 我希望我的帖子会有所帮助。

while (i.hasNext()) 
     {
          String vowels = "aeiouy";
         //Need to remove the words with the vowels as the first letter here
           boolean found = false;
           String str = i.next();
           for(int counter = 0; counter < vowels.length(); counter++)
             if(vowels.charAt(counter) == str.charAt(0)) {
                found = true;
                break;
             }
           if(found) { /* do stuff here */}
     }

编辑

之后,在打印新值之前,您必须通过执行以下操作再次重新初始化迭代器:i = linkedlist.iterator(); .注意这一点。:)

相关内容

  • 没有找到相关文章

最新更新