Как сбросить Enter, когда я использую сканер? - PullRequest
1 голос
/ 21 сентября 2011

Я хочу написать программу, в которой вам не нужно нажимать Введите , когда я использую сканер. Есть ли способ избежать этого? Предполагается, что это очень простая программа, но каждый раз, когда я что-то пишу, я должен нажать клавишу ввода.

1 Ответ

1 голос
/ 20 июня 2013

Если вы используете сканер типа

Scanner userInputScanner = new Scanner(System.in);
String scanInfo = userInputScanner.nextLine();

Затем вам нужно нажать , введите после того, как в документах указано метод:

Продвигает этот сканер за пределы текущей строки и возвращает пропущенный ввод.Этот метод возвращает остаток текущей строки, исключая любой разделитель строк в конце.Позиция устанавливается в начале следующей строки.

Поскольку этот метод продолжает поиск по вводу в поисках разделителя строк , он может буферизовать весь ввод, ищущий строкупропустить, если нет разделителей строк. "

По сути, нажав Enter, вы сообщаете компьютеру, что ваш ввод завершен

Если вам нужно что-то, что может сканировать информацию без нажатия Enter, вы можете сканировать текстовый файл следующим образом:

String input = "1 fish 2 fish red fish blue fish";                             
Scanner s = new Scanner(input);

Вместо ввода вы также можете использовать текстовый файл

Примечание: в примере ввода строки вы, вероятно, захотитеиспользовать разделитель (например, для разделения ввода String в случаях пробелов)

Scanner s = new Scanner(input).useDelimiter(Character.isWhitespace);

Лично мне нравится использовать txt-файлы, потому что с каждой строкой в ​​файле я могу использовать .hasNext() для получения данных.

...