Сканер и пробелы - PullRequest
       8

Сканер и пробелы

0 голосов
/ 08 марта 2020

Как объект java .util.Scanner реагирует на пробельные символы? В частности, если следующим символом в текстовом файле является символ новой строки или пробел, будет ли Scanner.next () возвращать символ новой строки или пробел или он вернет следующий непробельный символ? И если в файле остаются только пробельные символы, будет ли Scanner.hasNext () возвращать значение true или false? В документации упоминается, что она собирает только «полные токены», но я не уверен, что это значит.

1 Ответ

0 голосов
/ 08 марта 2020

Вы можете использовать методы hasNextLine () и nextLine () для захвата тех строк, которые содержат только пробел.

Все дело в позиционировании курсора, метод next () позиционирует курсор на та же строка после прочтения ввода, тогда как nextLine () помещает курсор на следующую строку после прочтения данного ввода.

Эта статья довольно ясно объясняет эту разницу и надеется, что это также ответит на ваш вопрос.

https://www.javaartifacts.com/difference-next-nextline/

Сканер разбивает свои входные данные на токены, а разделителем по умолчанию является пробел. Поэтому, если вы хотите настроить этот разделитель по умолчанию и использовать свой собственный разделитель, например, запятую, вы можете вызвать следующий метод для вашего объекта класса сканера:

s.useDelimiter (",");

Для получения дополнительной информации см. Следующую документацию:

https://docs.oracle.com/javase/tutorial/essential/io/scanning.html

...