我想匹配ArrayList,以便正确的Burgare获得正确的位置 例如Burgare6获得位置6,Burgare2获得位置2,依此类推。
public static void main(String[] args) {
List<String> burgare = Arrays.asList("1: Burgare 6", "2: Burgare 7", "3: Burgare 2",
"4: Burgare 1", "5: Burgare 3", "6: Burgare 4",
"7: Burgare 5");
System.out.println(burgare);
}
答案 0 :(得分:4)
你在这里。
Comparator<String> lastNumberComparator = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return Integer.valueOf(o1.split(" ")[2]).compareTo(Integer.valueOf(o2.split(" ")[2]));
}
};
Collections.sort(burgare, lastNumberComparator);
System.out.println(burgare);
使用String.split(" ")
带空格是一种将字符串分成三个标记“ 4:”,“ Burgare”,“ 1”的快速方法,其中最后一个标记[2]是我们用来排序的值。 / p>
答案 1 :(得分:1)
您可以简单地使用:
Collections.sort(burgare, new Comparator<String>() {
@Override
public int compare(String str1, String str2) {
return Integer.valueOf(str1.split(" ")[2])
.compareTo(Integer.valueOf(str2.split(" ")[2]));
}
});
如果您使用的是Java-8,则:
Collections.sort(burgare, (str1, str2) ->
Integer.valueOf(str1.split(" ")[2]).compareTo(Integer.valueOf(str2.split(" ")[2])));