我有一个arraylist<string>
的话。我使用Collections.sort(wordsList);
Java:如何搜索字符串的一部分数组
我正在使用这个数组作为自动建议下拉框,以便当用户输入一个字母时,他们会得到一个类似于他们输入内容的建议列表。
我该如何去搜索这个数组中的字符串前缀,比如说用户键入“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;
}
在此先感谢。
+1 Trie是一个伟大的自动建议数据结构 – Qwerky