(JAVA)对N个长度可达到1000的数进行排序

输入描述:输入第一行为一个整数N,(1<=N<=100)
接下来有N行每行有一个数,数的长度范围为1<=len<=1000.
每一个数都是一个正数,并且保证不包含前缀零
输出描述:可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()){
            int number = scanner.nextInt();
            String[] strings = new String[number];
            for (int i = 0; i < number; i++) {
                strings[i] = scanner.next();
            }
            for (int i = 0; i < number; i++) {
                for (int j = i+1; j < number; j++) {
                    //长度不同时
                    if(strings[i].length()>strings[j].length()){
                        String temp = strings[i];
                        strings[i] = strings[j];
                        strings[j] = temp;

                }else if(strings[i].length()==strings[j].length()){
                    String smaller = compare(strings[i],strings[j]);
                    if(smaller.equals(strings[j])){
                        String temp = strings[i];
                        strings[i] = strings[j];
                        strings[j] = temp;
                    }
                }
            }
        }
        for (int i = 0; i < number; i++) {
            System.out.println(strings[i]);
        }



    }
}
public static String compare(String str1,String str2){
    for (int i = 0; i < str1.length(); i++) {
            if(str1.charAt(i)

仅供参考!!
Idea里可以跑结果也正确,但是牛客提交时有数组越界的问题。

你可能感兴趣的:((JAVA)对N个长度可达到1000的数进行排序)