import easyIO.*;
class Oblig3A {
public static void main(String[] args) {
OrdAnalyse oA = new OrdAnalyse(args[0]);
oA.textLeser();
} //closes main
} //closes Oblig3 class
class OrdAnalyse {
String[] ord = new String[5000];
int[] antall = new int[5000];
int antUnik = 0;
String argu;
OrdAnalyse(String file){
argu = file;
} //args relay
void textLeser(){
In lesText = new In(argu);
Out nyText = new Out("oppsummering.txt" , true);
while (!lesText.endOfFile()) {
String reader = lesText.inWord();
for(int i=0; i<ord.length; i++) {
if(reader.equals(ord[i])) {
antall[i]++;
antUnik++;
ord[i] = reader;
nyText.out(ord[i]);
} //if
else {
antall[i]++;
} //else
} //for
}//while
}//textLeser
}//OrdAnalyse.class
任何人都能发现错误的东西吗? :S需要帮助。
我不知道它有什么问题,我尝试了很多不同的东西。 :/
不知道为什么会这样:s
第33行= if(reader.equals(ord [i])){
答案 0 :(得分:2)
只是用不同的文件试了一下并得到了这个
Exception in thread "main" java.lang.NullPointerException at OrdAnalyse.textLeser(Oblig3A.java:33) at Oblig3A.main(Oblig3A.java:8)
根据您的评论,以下方法调用将返回null
。
String reader = lesText.inWord();
稍后,在第33行,您可以访问reader
变量。
if(reader.equals(ord[i]))
在null对象上调用方法会抛出您看到的NullPointerException
。
最有可能的是,inWord()
与endOfFile()
一起无法按预期工作。您需要阅读这两种方法的文档,然后决定如何处理来自null
的{{1}}结果:最简单的解决方案是打破外部循环,但您可能想要做其他事情。
inWord()