3

我需要按字符的子字符串对字符串数组进行排序,如下所示:

[0] = "gtrd3455";
[1] = "wsft885";
[2] = "ltzy96545";
[3] = "scry5558";
[4] = "lopa475";

我需要按以下“3455、885、96545、5558、475”进行排序,我需要从数组的前 4 个字符中提取子字符串,对其进行排序并显示在一个数组中,如下面的输出。

输出应该是一个数组,如:

[0] = "ltzy96545";
[1] = "scry5558";
[2] = "gtrd3455";
[3] = "wsft885";
[4] = "lopa475";

我如何在 Java 中做到这一点的示例?

4

1 回答 1

9

您可以使用Comparator, 并使用Array#sort它的方法,根据您的需要对其进行排序:-

String[] yourArray = new String[3];
yourArray[0] = "gtrd3455";
yourArray[1] = "ltzy96545";
yourArray[2] = "lopa475";

Arrays.sort(yourArray, new Comparator<String>() {
    public int compare(String str1, String str2) {
        String substr1 = str1.substring(4);
        String substr2 = str2.substring(4);

        return Integer.valueOf(substr2).compareTo(Integer.valueOf(substr1));
    }
});

System.out.println(Arrays.toString(yourArray));

输出: -

[ltzy96545, gtrd3455, lopa475]
于 2012-10-24T19:23:10.360 回答