我正在编写一个程序,用于分析输入的文本并计算平均字母数。 当用户输入文本时,我可以让它工作,但当从文件中读取文本时,我无法让它工作。
public static void ReadFromFile() throws IOException {
String filename = "name.txt";
String str = new String(new char[100]);
try{
FileReader fr = new FileReader(filename);
BufferedReader br = new BufferedReader(fr);
while ((str = br.readLine()) !=null) {
System.out.println(str + "\n");
}
br.close();
} catch(IOException e) {
System.out.println("File not found");
}
while (c != str.length()) {
if (str.charAt(c) >= 'a' && str.charAt(c) <= 'z') {
count[str.charAt(c) - 'a']++;
}
c++;
}
for (c = 0; c<26;c++){
if (count[c] !=0){
double num = count[c];
double denom = str.length();
double average = num / denom;
System.out.print((char) (c + 'a') + " occurs " + count[c] + " times in the entered string. Average is ");
System.out.println(average);
}}}}
我不断收到错误消息
Exception in thread "main" java.lang.NullPointerException
at MainMenu.ReadFromFile(MainMenu.java:79)
at MainMenu.main(MainMenu.java:25)
任何帮助将不胜感激 谢谢
最佳答案
您正在逐行读取整个文件并将其打印到 System.out
完成后,您尝试处理数据,但您已经完成了文件的读取,因此 str 为“null”,并且您的程序终止了。
关于java - 分析从 Java 文件中读取的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29288059/