“线程中的异常”;“主要”;java.lang.NullPointerException(Uni工作) import easyIO.*; 第3A类{ 公共静态void main(字符串[]args){ OrdAnalysis oA=新的OrdAnalysis(args[0]); oA.textLeser(); }//关闭主管道 }//关闭3类 课堂秩序分析{ 字符串[]ord=新字符串[5000]; int[]antall=新int[5000]; int-antUnik=0; 字符串argu; ORD分析(字符串文件){ argu=文件; }//args继电器 void textLeser(){ In lesText=新In(argu); Out nyText=new Out(“oppsumering.txt”,true); 而(!leText.endOfFile()){ 字符串读取器=leText.inWord(); 对于(int i=0;i
只是用另一个文件试了一下,得到了这个“线程中的异常”;“主要”;java.lang.NullPointerException(Uni工作) import easyIO.*; 第3A类{ 公共静态void main(字符串[]args){ OrdAnalysis oA=新的OrdAnalysis(args[0]); oA.textLeser(); }//关闭主管道 }//关闭3类 课堂秩序分析{ 字符串[]ord=新字符串[5000]; int[]antall=新int[5000]; int-antUnik=0; 字符串argu; ORD分析(字符串文件){ argu=文件; }//args继电器 void textLeser(){ In lesText=新In(argu); Out nyText=new Out(“oppsumering.txt”,true); 而(!leText.endOfFile()){ 字符串读取器=leText.inWord(); 对于(int i=0;i,java,Java,只是用另一个文件试了一下,得到了这个 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 = n
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
根据您的评论,以下方法调用返回null
Exception in thread "main" java.lang.NullPointerException
at OrdAnalyse.textLeser(Oblig3A.java:33)
at Oblig3A.main(Oblig3A.java:8)
稍后,在第33行,访问读取器
变量
String reader = lesText.inWord();
在null对象上调用方法会抛出您所看到的NullPointerException
最有可能的是,inWord()
与endofile()
结合使用时没有达到预期效果。您需要阅读这两种方法的文档,然后决定如何处理inWord()
的null
结果:最简单的解决方案是中断外部循环,但您可能需要做其他事情
if(reader.equals(ord[i]))
向我们展示堆栈跟踪。异常发生在哪里?您应该有一个行号,并告诉我们该行在哪里。“我尝试了很多不同的方法。”甚至调试器?:)[tomrm@starrenburg线程“main”java.lang.NullPointerException中的~]$java Oblig3 Alice.txt异常[tomrm@starrenburg ~]$这是整个错误消息。空指针异常在哪里?编辑哪一行以添加行33@MrAdonexus编辑答案以进一步澄清。将第33行更改为:if(reader==ord[i]){似乎已摆脱error@MrAdonexus它确实消除了错误,但不会达到预期效果(“a”)).equals(“a”)和
(新字符串(“a”)==“a”
,您将看到不同的结果。是的,注意到它刚刚向我的文档发送了null…将其更改回,并意识到我忘记了前面的“!”,所以我仍然会出错
String reader = lesText.inWord();
if (reader == null) { break; }