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++]);