为什么数字可以,但字符就不行了

package shuzu;

import java.util.Arrays;
import java.util.Scanner;

public class 依次输入五句话然后逆序输出 {

public static void main(String[] args) {
    Scanner input=new Scanner(System.in);

    String[]name=new String[5];

    System.out.println("请输入5句话");
    for(int i=0;i<name.length;i++){
        System.out.print("第"+(i+1)+"句话:");
        name[i]=input.next();
    }

    System.out.println("\n");

    System.out.println("逆序输出5句话为:");
    Arrays.sort(name);
    for(int j=name.length-1;j>=0;j--){
        System.out.println(name[j]);
    }


}

}
输入数字可以逆序来输出,但输入字符就乱了,........,求解.

Arrays.sort(name);
这个要传一个比较器,否则没法排序

首先是scanner.nextLine();
另外,你都Arrays.sort(name);重新排序了,还怎么让它按照原来的顺序逆序输出。。。。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] name = new String[3];
System.out.println("请输入5句话");
for(int i=0;i<3;i++){
System.out.println("第"+(i+1)+"句话:");
name[i]=scanner.nextLine();
}
System.out.println("\n");
System.out.println("逆序输出5句话为:");
// Arrays.sort(name);

    for(int j=name.length-1;j>=0;j--){
        System.out.println(name[j]);
    }
}

next读取到空格就结束,nextline才是读取一行,可以有空格