This question already has answers here:
Sorting alphanumeric strings java
(4 个回答)
7年前关闭。
我有这个字符串列表
我想根据其中的数字对这个列表进行排序。
例如,如果我有
我希望它像
我使用过
我应该怎么做才能把它放在正确的顺序?
(4 个回答)
7年前关闭。
我有这个字符串列表
Car1
Car2
Car3
......
Carn
我想根据其中的数字对这个列表进行排序。
例如,如果我有
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);
}
});
10-08 00:18