我想排序基於輸入字符串字符串數組排序字符串,例如薄,我們有這些文字比較和數組列表
"united state"
"sample united"
"united kingdom"
"greece"
"uzbakestan"
所以當用戶輸入united
,輸出將是:
"united state"
"united kingdom"
"sample united"
"greece"
"uzbakestan"
它首先顯示united
並對它們進行排序。
我想排序基於輸入字符串字符串數組排序字符串,例如薄,我們有這些文字比較和數組列表
"united state"
"sample united"
"united kingdom"
"greece"
"uzbakestan"
所以當用戶輸入united
,輸出將是:
"united state"
"united kingdom"
"sample united"
"greece"
"uzbakestan"
它首先顯示united
並對它們進行排序。
我不知道我完全理解你所追求的 - 但是如果你想打印的「最相似」的字符串首先輸入您的輸入字符串:
您可能想要創建一個Comparator<String>
,它將根據第3個字符串的levenshtein distance來比較2個字符串[您的我輸入字符串]。
使用此比較器 - 您可以使用Arrays.sort(myArray,new MyCustomComparator(inputString))
對數組進行排序。
如果這是一個ArrayList
之類的標題表明[衝突的標題和質疑的身體 - 你可以使用Collections.sort(myList,new MyCustomComparator(inputString))
如果你使用ArrayList,你必須使用收藏來排序數組列表。
例如:
Collections.sort(arrayList);
查看:
Iterator<String> i = a.iterator();
while(i.hasNext()) {
System.out.println(i.next());
}
他不希望自然順序排序,這裏應該使用自定義比較器。 – amit 2012-03-20 08:17:50
請使用比較器進行自定義排序,並使用str_array.sort() – 2012-03-20 08:24:09
我認爲,首先你列出所有包含輸入的關鍵詞的項目。然後添加其他項目到列表中。
for(int i=0;i<mylist.size();i++) {
//splitting item by space to match with the inputText
String[] myString = mylist.get(i);
for(int j=0;j<myString.length;j++) {
if(myString[j].equals(inputText)) {
myNewList.add(mylist.get(i));
break;
}
}
}
for(int i=0;i<mylist.size();i++) {
if(!mynewList.contains(mylist.get(i))) {
myNewList.add(mylist.get(i));
}
}
可能是有一些簡單的方法來做到這一點。但我希望這會給你你想要的輸出。
首先它將所有包含輸入文本的字符串添加到新列表中,然後添加剩餘的字符串。
該示例沒有以任何我認可的方式排序。你的分類標準是什麼? – oers 2012-03-20 08:14:17
這不是排序。 – 2012-03-20 08:15:50
上述例子都沒有排序,除非我的字母順序自開始以後纔開始排序。 – Nishant 2012-03-20 08:16:30