Попробуйте использовать scanner.hasNext()
, чтобы увидеть, есть ли что-то еще, что вы можете прочитать. Вместо вашего метода сплиттера вы можете использовать StringTokenizer
, который будет разбивать строку на пробелы.
Причина, по которой вы код не работает, потому что вы вызываете Scanner.nextLine () дважды. Несмотря на то, что ваш код:
while (!scanner.nextLine().equals(""))
является проверкой состояния, он считывает ее и движется дальше. Подумайте об этом так: Сканер похож на читателя книг. Когда вы вызываете Scanner.nextLine (), программа чтения книг перемещается к этой строке и читает ее. Когда вы позвонили снова, он прочитал пустую строку. Например, если я введу это:

Ваш читатель прочтет «Мне нравится р ie» и проверит, что это не "". Когда это сделано, и вы получите переменную sentence
, вы снова вызвали метод, который читает в СЛЕДУЮЩЕЙ строке, которой там нет. Таким образом, ваш код не работает.