String []中的空指针异常

时间:2014-03-17 01:47:32

标签: java nullpointerexception

我不确定为什么我在包含NullPointerException循环的行上获得while

最初创建String[] input时。它充满了null所以也许这就是我收到错误的原因。我尝试通过添加这段代码来解决这个问题:

    for (String k : input) {
        k = "empty";
    }

这可能是错误的方法,所以我仍然收到错误。

代码:

String[] input = new String[3];
        while(!input[0].equals("exit")) {
            Scanner sc = new Scanner(System.in);
            input = sc.nextLine().split(" ", 3);
            switch(input[0]) {
                // vi
                case "vi":
                    System.out.println("hi");
                    break;
                // ls
                case "ls":
                    break;
                // mkdir
                case "mkdir":
                    break;
                // pwd  
                case "pwd":
                    break;
            }   
        }

1 个答案:

答案 0 :(得分:3)

for (String k : input) {
    k = "empty";
}

实际上等同于

for (int i = 0; i < input.length; i++) {
    String k = input[i];
    k = "empty";
}

更改引用k不会影响数组中的引用。

只做

for (int i = 0; i < input.length; i++) {
    input[i] = "empty";
}

我不确定你的while循环是做什么的,所以我不会对此发表评论。