具有整数值的字符串的排序列表-Java

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.
我该怎么做才能把它按正确的顺序排列?

Evg*_*eev 5

你需要一个自定义比较器,比如

    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)