0

ファイルを読み取り、すべての単語を文字列配列に配置してから、すべての配列を列として出力するコードを作成しようとしています。動作するはずのコードを書きましたが、単語を出力する代わりに、常に「null」しか取得しません。

問題は次の場所にある必要があります。word[totalWords] = read.inWord();

単語を正しく保存するために、代わりに何を書くことをお勧めしますか?

public static void main(String[] args){

    In read = new In (args[0]);

    int totalWords = 0;

    String word[] = new String[31000];
    int uniqueWords[] = new int[31000];

    while(read.endOfFile() == false) {

        word[totalWords] = read.inWord();
        totalWords++;
        System.out.println(word[totalWords]);
    }
}
4

2 に答える 2

3

まだ初期化されていない、変更した要素の後のインデックスに要素を出力しています。ですnull。ロジックを反転

word[totalWords] = read.inWord();
System.out.println(word[totalWords]);
totalWords++;
于 2013-10-09T18:03:27.490 に答える
2

あなたは少し遅れて単語を印刷しています。そのはず:

word[totalWords] = read.inWord();
System.out.println(word[totalWords]);
totalWords++;

つまり、最初に単語を出力してからカウンターをインクリメントする必要があります。あなたの場合、割り当てられていない配列要素の値を出力しようとしているため、null.

より美しい方法は次のとおりです。

 word[totalWords] = read.inWord();
 System.out.println(word[totalWords++]);
于 2013-10-09T18:05:12.527 に答える