“线程中的异常”;“主要”;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; }