当前位置: 首页 > 知识库问答 >
问题:

如何从以指定字母开头的列表中获取所有单词

仲孙经赋
2023-03-14

我试图显示以用户输入的字母开始的单词列表。

因此,例如,如果我在我的列表中添加了三个词,cat、玉米和dog,并且用户输入了字母c,那么Java小程序上的输出应该是cat、玉米。

但是,我不知道该怎么做。

public void actionPerformed(ActionEvent e){
    if (e.getSource() == b1 ){
        x = textf.getText();
        wordList.add(x);
        textf.setText(null);
    } 

    if (e.getSource() == b2 ){
    }
}

b1正在将所有用户输入添加到秘密存储的列表中,我现在想在按下时制作另一个按钮,以显示用户以指定字母开头的单词。

textf = my text field
wordList = my list I created
x = string I previously defined 

共有3个答案

公孙霖
2023-03-14

如果您可以使用Java8,那么您可以内置功能来过滤您的列表:

public static void main(String[] args) throws Exception {
    final List<String> list = new ArrayList<>();
    list.add("cat");
    list.add("corn");
    list.add("dog");
    System.out.println(filter(list, "c"));
}

private static List<String> filter(final Collection<String> source, final String prefix) {
    return source.stream().filter(item -> item.startsWith(prefix)).collect(Collectors.toList());
}

这使用<code>filter<code>方法过滤以<code>前缀</code>参数字符串开头的每个列表项。

输出为:

[猫,玉米]

宦书
2023-03-14

你可以试试这样的东西 -

public static void main(String[] args) {
        String prefix = "a";
        List<String> l = new ArrayList<String>();
        List<String> result = new ArrayList<String>();
        l.add("aah");
        l.add("abh");
        l.add("bah");

        for(String s: l) {
            if(s.startsWith(prefix)) {
                result.add(s);
            }
        }

        System.out.println(result);
   }

结果是-

[aah, abh]
晋奕
2023-03-14

您可以遍历所有可能的索引,检查该索引中的元素是否以字母开头,如果是,则打印它。

替代(可能更好)代码(我打算把它放在后面,但因为它更好,所以它应该是第一个。这里取自@larsmann的答案。

//given wordList as the word list
//given startChar as the character to search for in the form of a *String* not char
for (String element : wordList){
    if (element.startsWith(startChar)){
        System.out.println(element);
    }
}

免责声明:此代码未经测试,我对ArrayList没有太多经验,Java对我来说更像是一种四元编程语言。希望它能:)

//given same variables as before
for (int i = 0; i < wordList.size(); i++){
    String element = wordList.get(i);
    //you could remove the temporary variable and replace element with
    //  wordList.get(i)
    if (element.startsWith(startChar){
        System.out.println(element);
    }
}
 类似资料:
  • 基于当前的实现,我将从某个来源获得一个数组列表,其中包含大约1000个按字母排序的唯一名称(A-Z或Z-A)。 我需要找到以给定字母表开头的第一个单词的索引。 因此,更准确地说,当我选择一个字母表,例如“M”时,它应该给我排序列表中以“M”开头的单词第一次出现的索引。 这样我就可以找到26个字母中每个字母开头的所有单词的索引。 请帮我找到一个不影响速度的解决方案。 更新时间: 实际上,在获得100

  • 我有一个字符串列表,每个字符串大约有10个句子。我希望从每个字符串中找到以大写字母开头的所有单词。优选地在句子中的第一个词之后。我正在使用re。我要做这件事。当我手动设置string=''时,我不会遇到任何问题,但是当我尝试使用for循环来循环列表中的每个条目时,我会得到不同的输出。 输出: 当我手动输入字符串值时 输出: 但我似乎无法编写一个for循环来正确打印列表中5项的输出。有什么想法吗?

  • 我在大学学习Java,我需要写一个静态int countCapitals(String s)方法,返回字符串s中有多少个单词以大写字母开头。 大写字母是UPPERCASE_LETTER类型或TITLECASE_LETTER类型的字符(Character)。单词是由一个或多个空格、字符、符号或标点符号分隔的字母或数字序列。 New.countCapitals("亲爱的朋友们,你们好!这里—以大写字母

  • 我被分配了一个任务,从数组列表中返回以特定字母开头的单词,但是我选择了字母c;我被告知我可以用另一种方式做到这一点,除了专门返回每个以字母开头的元素和许多println之外,我不知道除了使用ArrayList startswith方法之外,还有什么其他方法可以做到这一点,有人愿意启发我吗? }

  • 问题内容: 我有一个看起来像这样的数组: 我如何仅获取以其开头的元素? 问题答案:

  • 本文向大家介绍在Python中查找以特定字母开头的列表元素,包括了在Python中查找以特定字母开头的列表元素的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将从列表中找到所有以特定字母开头的元素。 使用索引和lower 我们使用lower函数,以便以后的测试可以与列表中元素的首字母匹配,而不考虑大小写。然后,我们使用0处的索引,以便将列表中元素的第一个字母与测试字母进行比较。 示例 输出