看似简单的题目,但是会犯上一个小失误,即输出少一个数据,并且是最后一次输入的字符串,而排序后的第一位是空:

import java.util.*;

public class Main {
    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String[] array = new String[n];
        for (int i = 0; i < n; i++) {
            array[i] = in.nextLine();
        }
        Arrays.sort(array);
        for (String str : array) {
            System.out.println(str);
        }
    }
}

这是因为之前输入一个nextInt后,输入的回车会被nextLine给接受,所以排序会少最后输入的字符串。

更改方案:可以将nextLine改为next,后者不接受空格回车:

import java.util.*;

public class Main {
    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String[] array = new String[n];
        for (int i = 0; i < n; i++) {
            array[i] = in.next();
        }
        Arrays.sort(array);
        for (String str : array) {
            System.out.println(str);
        }
    }
}