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 回答