线程“main”java.lang.NullPointerException中的异常。似乎没什么用

时间:2014-09-15 23:39:11

标签: java string exception

我不断收到这个错误,我不确定如何更改代码以摆脱此错误。似乎什么都没有用。什么是摆脱这个错误的方法?

import java.util.*;
import java.io.*;

public class string2 {
    public static String getInput(Scanner in) throws IOException {
        File dataFile = new File("data.txt");
        String input = null;

        if (!dataFile.exists()) {
            System.out.println("Error");
            System.exit(0);
        }
        return input;
    }   

    public static int getWordCount(String input) throws IOException {
        String[] result = input.split(" ");
        return result.length;
    }     

    public static void main(String[] args) throws IOException {
        String input = getInput(new Scanner(System.in)); 
        int counter = getWordCount(input);
        System.out.println("The number of words in this string (" + input + ") are: " + counter);
    }   
}



xception in thread "main" java.lang.NullPointerException
    at string2.getWordCount(string2.java:40)
    at string2.main(string2.java:51)

2 个答案:

答案 0 :(得分:0)

您没有为输入分配值。

您正在传递空指针(您将输入设置为NULL)作为输入,从而导致错误。

如果要从文件中读取数据,则将Scanner设置为从文件中读取并将其放入String,数组或某种可以迭代的变量中。

答案 1 :(得分:0)

在getInput(Scanner in)方法中,您不会将用户输入的输入值重新分配到名为input的String变量中。它总是为空。你只是返回输入变量的空值。 你应该在return语句“return input”之前添加以下行。

input = in.nextLine();