Ввод нескольких строк в Java с использованием сканера [с примером кода]
Опубликовано: 2021-02-05Оглавление
Введение
В пакете java.util сканер является одним из классов, которые помогают собирать несколько входных данных примитивных типов, таких как double, integer, strings и т. д. Хотя это неэффективный способ чтения входных данных в программе Java, где действует время. как ограничение, это, несомненно, один из самых простых способов собрать несколько входных данных от пользователя. В этом блоге вы узнаете, как собирать несколько строк, введенных пользователем в программе Java, с помощью класса сканера.
Методы получения нескольких входных данных с помощью сканера
Вы должны импортировать пакет java.util в программу перед использованием класса Scanner. В следующей таблице перечислены методы, используемые для получения нескольких входных данных разных типов от пользователя в программе Java.
Метод | Входы |
следующийInt() | Целое число |
следующийПоплавок() | Плавать |
следующийдвойной() | Двойной |
следующая длинная () | Длинная |
следующийШорт() | короткий |
следующий() | Одно слово |
следующая строка () | Линия струн |
следующийбулев() | логический |
Использование метода Java nextLine()
Метод java.util.Scanner.nextLine() возвращает строку, которая была пропущена при перемещении сканера за текущую строку. Если в конце текущей строки указан разделитель строк, этот метод исключает его и возвращает остаток строки от текущей строки. Сканер устанавливается в начале следующей строки и считывает всю строку, включая пробелы в словах.
Синтаксис метода nextLine() следующий:
Публичная строка nextLine()
Этот метод выдает следующие два исключения:

- NoSuchElementException — если строка пуста или строка не найдена.
- IllegalStateException — если сканер закрыт.
Пример
В следующем примере показано, как метод java.util.Scanner.nextLine() собирает несколько входных данных от пользователя.
импортировать java.util.Scanner; открытый класс SacnnerDemoMultipleString { public static void main (аргументы String []) { Демонстрация сканера = новый сканер (System.in); System.out.print("Пожалуйста, введите несколько входных данных, которые вы хотите напечатать: "); //принимает целое число Строка[] строка = новая строка [demo.nextInt()]; // использование <enter> из ввода выше демо.следующаястрока(); for (int i = 0; i <string.length; i++) { строка[i] = demo.nextLine(); } System.out.println("\nВы ввели следующие данные: "); // цикл for-each для печати строки для (строка ул: строка) { Система.out.println(строка); // закрываем сканер сканер.закрыть(); } } } |
Вышеупомянутая программа напечатает следующий вывод
Пожалуйста, введите несколько входных данных, которые вы хотите распечатать: 7 Миша Гарри Роберт Харви Джилл Рэйчел Дженнифер Вы ввели следующие данные: Миша Гарри Роберт Харви Джилл Рэйчел Дженнифер |
Использование метода Java nextInt()
Метод java.util.Scanner.nextInt() сканирует введенные пользователем данные как целое число. Если целое число найдено, сканер переходит к соответствующему вводу.
Синтаксис метода nextInt() следующий:
Публичный интервал nextInt()
Этот метод создает следующие три исключения:
- InputMismatchException — если следующий токен не соответствует целочисленному регулярному выражению или если следующий токен выходит за пределы допустимого диапазона.
- NoSuchElementException — если вход исчерпан.
- IllegalStateException — если сканер закрыт.
Пример
В следующем примере показано, как метод java.util.Scanner.nextInt() собирает несколько входных данных от пользователя.
// Java-программа для сканирования целых чисел с помощью Scanner // класс и вывести их среднее значение. импортировать java.util.Scanner; открытый класс ScannerDemoInteger { public static void main (аргументы String []) { Демонстрация сканера = новый сканер (System.in); // Инициализировать сумму и количество входных элементов целая сумма = 0, количество = 0; // Проверяем наличие целочисленного значения ![]() пока (demo.hasNextInt()) { // Сканируем целочисленное значение int num = demo.nextInt(); сумма += число; количество++; } int среднее = сумма/количество; System.out.println("Среднее: " + среднее); } } |
Приведенная выше программа получает следующие входные данные:
101 223 238 892 99 500 728 |
Приведенная выше программа выведет следующий вывод:
Среднее: 397 |
Читайте также: Проект Java MVC
Использование метода Java nextDouble()
Метод java.util.Scanner.nextDouble() сканирует введенные пользователем данные как двойные. Если найдено регулярное выражение с плавающей запятой, сканер переходит за пределы совпадающего ввода.
Синтаксис метода nextInt() следующий:
публичный двойной nextDouble()

Этот метод создает следующие три исключения:
- InputMismatchException — если следующий токен не соответствует регулярному выражению с плавающей запятой или если следующий токен выходит за пределы допустимого диапазона.
- NoSuchElementException — если вход исчерпан.
- IllegalStateException — если сканер закрыт.
Пример
В примере показано, как метод java.util.Scanner.nextDouble() собирает несколько входных данных от пользователя.
// Java-программа для сканирования с плавающей запятой с помощью Scanner импортировать java.util.Scanner; открытый класс ScannerDoubleRegularExpression { public static void main(String[] args) { Строка new = «Доброе утро! 3 + 3,0 = 6 верно»; // записать новый объект сканера с указанным строковым объектом Демонстрация сканера = новые сканеры; // используем локаль США, чтобы иметь возможность идентифицировать дубликаты в строке demo.useLocale(Язык.США); // ищем следующий двойной токен и печатаем его в то время как (demo.hasNext()) { // если следующее число двойное, вывести найденное и регулярное выражение с плавающей запятой если (демо.hasNextDouble()) { System.out.println("Найдено:" + demo.nextDouble()); } // если двойное регулярное выражение не найдено, вывести «Not Found» и токен System.out.println("Не найдено:" + demo.next()); } // закрываем сканер сканер.закрыть(); } } |
Вышеупомянутая программа приведет к следующему результату:
Не найдено: хорошо Не найдено: Доброе утро! Найдено: 3.0 Не найдено: + Найдено: 3.0 Не найдено: = Найдено: 6.0 Не найдено: правда |
Заключение
Например, коды, приведенные в этом блоге, являются целью и могут быть изменены в соответствии с индивидуальными потребностями. Если вам интересно узнать больше о Java и разработке программного обеспечения с полным стеком, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения с полным стеком, которая предназначена для работающих профессионалов и предлагает более 500 часов тщательного обучения, 9+ проекты и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.
Что такое класс Scanner в Java?
Класс Scanner позволяет считывать значения с клавиатуры без использования ввода с консоли Java. Консольный ввод Java медленный, как и его перенаправление. Scanner быстрее и удобнее, поэтому Scanner следует использовать вместо консольного ввода Java. Сканер использует обычный входной поток Java, поэтому его можно связать с другими парсерами. Scanner также проще в использовании, чем консольный ввод Java. Scanner имеет три основных подкласса, а именно BufferedReader, InputStreamReader и FileReader. Самый общий — BufferedReader. BufferedReader может читать все, что может быть прочитано InputStreamReader, и у него есть одно большое преимущество: буфер. Буфер может содержать одну строку за раз. Входной поток вообще не имеет буфера: когда вы вызываете next(), он возвращает значение. Это означает, что вам нужно собрать значения, прежде чем вы сможете что-то с ними делать. Сканер сделает это за вас.
Что такое построитель строк в Java?
Построитель строк — это новый тип класса для создания строки. Класс построителя строк представлен в Java с версии 1.3. Он позволяет вам создать строку, объединив несколько строк, и автоматически изменит свой размер, когда вы добавите к ней больше строк. По сравнению с конкатенацией строк использование построителя строк быстрее и гибче, хотя и менее читабельно. Объекты StringBuilder — это объекты, которые используются для создания значений String. Объекты StringBuilder имеют ряд методов.
Что такое InputStreamReader в Java?
InputStreamReader считывает поток символов из входного потока и декодирует их в указанную кодировку символов. Он обеспечивает простой способ преобразования потоков символов из одной кодировки в другую. InputStreamReader считывает байты из базового потока и преобразует их в символы, используя указанную кодировку набора символов. Это класс, который используется для преобразования данных потока байтов в данные потока символов. Поток байтов представляет двоичные данные, а поток символов представляет текст.