我想排序基于输入字符串字符串数组排序字符串,例如薄,我们有这些文字比较和数组列表
"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