Эта while
петля странная:
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
while (line != null) {
String word = scanner.next();
addWord(word, linecount);
}
linecount++;
}
Если ваш входной файл:
a
b
Тогда scanner.nextLine()
будет возвращено a
, тогда scanner.next()
вернет b
, потому что nextLine
возвращает следующую строку с разделителями в конце строки, а next
возвращает следующий токен из входного файла. Это действительно то, что вы хотите? Я бы предложил попробовать это:
while (scanner.hasNextLine()) {{
String word = scanner.nextLine();
addWord(word, linecount);
linecount++;
}
Имейте в виду, что это будет работать, только если в строке будет только слово. Если вы хотите обрабатывать несколько слов в строке, это будет немного длиннее:
while (scanner.hasNextLine()) {{
String line = scanner.nextLine();
Scanner lineScanner = new Scanner(line);
while(lineScanner.hasNext()) {
addWord(lineScanner.next(), linecount);
}
linecount++;
}