Jus*_*per 3 java sorting collections java-ee comparator
我有这个字符串列表
Car1
Car2
Car3
......
Carn
Run Code Online (Sandbox Code Playgroud)
我想根据其中的数字对这个列表进行排序.
例如,如果我有Car3, Car1, Car12, Car45,我希望它被排序为Car1, Car3, Car12, Car45.
我已经习惯了Collections.sort(),但它会返回类似的东西Car1, car12, car3, Car45.
我该怎么做才能把它按正确的顺序排列?
你需要一个自定义比较器,比如
Collections.sort(list, new Comparator<String>() {
public int compare(String s1, String s2) {
int i1 = Integer.parseInt(s1.replaceAll("\\D", ""));
int i2 = Integer.parseInt(s2.replaceAll("\\D", ""));
return Integer.compare(i1, i2);
}
});
Run Code Online (Sandbox Code Playgroud)