Основная концепция hasNext () и hasNextLine () is
hasNextLine: - Возвращает true, если на входе этого сканера есть другая строка. Этот метод может блокироваться при ожидании ввода.
Возвращает: true тогда и только тогда, когда этот сканер имеет другую строку ввода. Throws: IllegalStateException - если этот сканер закрыт
hasNext
]Возвращает true, если следующий полный токен соответствует указанному шаблону.
Полный токен имеет префикс и постфиксацию с помощью ввода, который соответствует шаблону разделителя. Этот метод может блокироваться при ожидании ввода.
Параметры: pattern - шаблон для сканирования для
Возвращает: true тогда и только тогда, когда этот сканер имеет другой токен, соответствующий указанному шаблону
Поскольку ваш последний вход говорит true для nextLine (), потому что вызов scan.nextLine (); возвращает следующий токен. Важно отметить, что сканер возвращает пробел и букву, потому что она читается с конца последнего токена до начала следующей строки.