gpt4 book ai didi

java - 如何在数组中搜索字符串的一部分?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:54:08 27 4
gpt4 key购买 nike

我有一个 arraylist<string>的话。我使用 Collections.sort(wordsList); 对其进行排序

我将这个数组用于自动建议下拉框,这样当用户输入字母时,他们会得到一个与他们输入的内容相似的建议列表。

我如何搜索此数组以查找字符串前缀,假设用户键入“mount”并且数组包含单词“mountain”,我如何搜索此数组并返回相似的值。

到目前为止,这是我的代码:

public List<Interface> returnSuggestedList(String prefix) {
String tempPrefix = prefix;
suggestedPhrases.clear();
//suggestedPhrases = new ArrayList<Interface>();
//Vector<String> list = new Vector<String>();
//List<Interface> interfaceList = new ArrayList<Interface>();
Collections.sort(wordsList);
System.out.println("Sorted Vector contains : " + wordsList);
int i = 0;
while (i != wordsList.size()) {
int index = Collections.binarySearch(wordsList, prefix);
String tempArrayString = wordsList.get(index).toString();
if (tempArrayString.toLowerCase().startsWith(prefix.toLowerCase())) {
ItemInterface itemInt = new Item(tempArrayString);
suggestedPhrases.add(itemInt);
System.out.println(suggestedPhrases.get(i).toString());
System.out.println("Element found at : " + index);
}
i++;
}
return suggestedPhrases;
}

最佳答案

最基本的方法是

List<String> result = new ArrayList<String>();
for(String str: words){
if(str.contains(keyword){
result.add(str);
}
}

你可以改进这个版本,如果你只关心 startWith 而不是 contains 那么你可以在 HashMap 中分配单词,你会缩小搜索范围

关于java - 如何在数组中搜索字符串的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7672922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com