【发布时间】:2011-12-02 03:25:10
【问题描述】:
我有一个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;
}
【问题讨论】:
标签: java string sorting search string-comparison