怎么将数组中的字符串按着下面格式排序

将01 03 01001 04 03001 03002 02 04001 04002 02001 排序成01 01001 02 02001 03 03001 03002 04 04001 04002

public static void main(String[] args) {
        String[] arr = {"01", "03", "01001", "04", "03001", "03002", "02", "04001", "04002", "02001"};

        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (compare(arr[j], arr[j+1]) > 0) {
                    String temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        
        System.out.println(Arrays.toString(arr));
    }

    private static int compare(String s1, String s2) {
        int len1 = s1.length();
        int len2 = s2.length();
        int minLen = Math.min(len1, len2);

        for (int i = 0; i < minLen; i++) {
            char c1 = s1.charAt(i);
            char c2 = s2.charAt(i);
            if (c1 != c2) {
                if (i == 0) {
                    return c1 - c2;
                } else if (i == 2 || i == 4) {
                    return s1.substring(0, i).compareTo(s2.substring(0, i));
                } else {
                    return c1 - c2;
                }
            }
        }

        return len1 - len2;
    }

输出结果:

img

请采纳,谢谢

按 ascii 码直接排序不就是了?