程序抛出NullPointerException

时间:2019-02-19 23:49:21

标签: java eclipse lab

是的,它在第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();
    }   
}

1 个答案:

答案 0 :(得分: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];