-2

说它在第 11 行。有什么帮助吗?我只是想按长度对 10 个字符串的数组进行排序。

import java.util.*;
public class lab10 {
    public static void main(String[] args) {
        Scanner key = new Scanner(System.in);

        System.out.println("Enter 10 strings and I'll sort them by their length. Smallest to largest.");
        String[] input = new String[10];
        String smallest = input[0];

        for(int i=0; i<10; i++){
            if(input[i].length() < smallest.length()){
                smallest = input[i];
            }
            System.out.println(smallest);
        }
        key.close();
    }   
}
4

1 回答 1

0

此行创建一个对字符串的空引用数组:

String[] input = new String[10];

此行获取第一个空引用:

String smallest = input[0];

此行尝试调用String.length()空值:

    if(input[i].length() < smallest.length()){

这种情况是由于您从不input使用从用户那里收集的字符串填充数组。

编辑:要收集字符串,请考虑执行以下操作:

String[] input = new String[10];
for(int i = 0; i < 10; i++) {
    input[i] = key.nextLine();
}
String smallest = input[0];
于 2019-02-19T23:52:03.160 回答