我不断收到这个错误,我不确定如何更改代码以摆脱此错误。似乎什么都没有用。什么是摆脱这个错误的方法?
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)
答案 0 :(得分:0)
您没有为输入分配值。
您正在传递空指针(您将输入设置为NULL)作为输入,从而导致错误。
如果要从文件中读取数据,则将Scanner设置为从文件中读取并将其放入String,数组或某种可以迭代的变量中。
答案 1 :(得分:0)
在getInput(Scanner in)方法中,您不会将用户输入的输入值重新分配到名为input的String变量中。它总是为空。你只是返回输入变量的空值。 你应该在return语句“return input”之前添加以下行。
input = in.nextLine();