我有一個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