0
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])) {

4

1 に答える 1

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()in withendOfFile()は期待どおりに機能しません。null両方の方法のドキュメントを読んでから、 からの結果を処理する方法を決定する必要がinWord()あります。

String reader = lesText.inWord();
if (reader == null) { break; }
于 2013-10-08T11:02:20.407 に答える