如何找到以给定字符串开头的单词?

时间:2019-11-19 22:29:12

标签: java arrays arraylist hashmap substring

这是我的浏览方法。我正在尝试搜索“ dictionaryEntry”对象的哈希图,仅查看条目的“ word”部分。 (b.word)。这个想法是,您可以搜索整个词典并返回所有以该方法给出的字符串开头的单词。例如,您可以返回所有以字符串“ sto”开头的单词。我的想法是遍历哈希图,如果单词的子字符串从零位置开始到输入字符串的长度结束,则将其添加到数组列表中。然后将返回数组列表。

public ArrayList<dictionaryEntry> browse(String s) {
        ArrayList<dictionaryEntry> brow = new     ArrayList<dictionaryEntry>();
        for (dictionaryEntry b : hash.values()) {
            if ((b.word.substring(0, s.length())).equals(s)) {
                brow.add(new dictionaryEntry(b.word, b.definition));

        }

    }
    return brow;
}

2 个答案:

答案 0 :(得分:0)

更简单的方法是使用Java String startsWith API。然后,该功能将变为:

public ArrayList<dictionaryEntry> browse(String s) {
  ArrayList<dictionaryEntry> brow = new ArrayList<dictionaryEntry>();
  for (dictionaryEntry b : hash.values()) {
    if (b.word.startsWith(s)) {
      brow.add(new dictionaryEntry(b.word, b.definition));

    }
  }
  return brow;
}

答案 1 :(得分:0)

使用Stream API可能如下所示:

return (college_names, college_enrollments)