gpt4 book ai didi

java.lang.NullPointerException,不知道为什么?

转载 作者:行者123 更新时间:2023-12-04 15:53:53 25 4
gpt4 key购买 nike

我正在编写一个程序,将一系列单词分成标记并读取文本,然后计算它们的出现频率。此代码有多个相关代码(WordCount、FreqStudy 和 Echo),但 WordFreq 类是导致 java.lang.NullPointerException 错误的原因。这是我的 WordFreq 代码:

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

public class WordFreq extends Echo{

WordCount[] wcArray;
int ct;
String[] sentence;
double freq;
String newLine;

public WordFreq(String f, String words) throws IOException{
super(f);
String[] wordString = words.split(" ");
for(int i=0; i<wordString.length; i++)
wcArray[i] = new WordCount(wordString[i]);
Scanner scan = new Scanner(new FileReader(fileName));
}

public void processLine(String line){
newLine = line.toLowerCase();
sentence = newLine.split(" ");
for(String s: sentence){
for(WordCount w: wcArray){
if(w.getWord().equals(s))
w.incCount();
}
ct++;
}
}

public void reportFrequencies(){
for (int i=0; i<wcArray.length; i++){
freq = (wcArray[i].getCount() / ct);
System.out.print(wcArray[i].getWord()+" ");
System.out.printf("%6.4f\n", freq);
}
}
}

当我给它一个文件来读取 FreqStudy 主类时,我收到的错误看起来像这样:

java.lang.NullPointerException
at WordFreq.<init>(WordFreq.java:17)
at FreqStudy.main(FreqStudy.java:14)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)

我真的不明白问题是什么,我整天都在研究这个,所以我觉得脑死亡。如果可以的话请看一下,我将不胜感激。

编辑:我意识到我没有在发布后立即初始化它,但我的频率返回 0 个结果。有人帮忙吗?

最佳答案

在分配任何值之前初始化数组 wcArray:

wcArray = new WordCount[wordString.length];

关于java.lang.NullPointerException,不知道为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16048879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com