Java: как сохранить все слова из текстового файла в массиве String

Я пытаюсь написать код, который читает файл и помещает все слова в массив String, а затем печатает весь массив в виде столбца. Я написал код, который должен работать, но вместо того, чтобы печатать слова, я получаю только "ноль" все время.

Проблема должна быть на: 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]);
    }
}

2 ответа

Решение

Вы печатаете элемент по индексу после того, который вы изменили, который еще не был инициализирован, т.е. является null, Переверните свою логику

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

Вы печатаете слово немного поздно. Так должно быть:

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

т.е. вы должны сначала напечатать слово, а затем увеличить счетчик. В вашем случае вы пытаетесь напечатать значение неназначенного элемента массива, следовательно, вы получаете null,

Более красивый способ будет:

 word[totalWords] = read.inWord();
 System.out.println(word[totalWords++]);
Другие вопросы по тегам