Класс Scanner в Java
Класс Scanner в Java в основном используется для получения пользовательского ввода и относится к пакету java.util. Чтобы использовать его, вы можете создать объект класса и использовать любой из методов класса Scanner. В приведенном ниже примере используем метод nextLine(), который используется для чтения строк.
import java.util.Scanner;// Import the Scanner class public class Example < public static void main(String[] args) < Scanner s = new Scanner(System.in);// Create a Scanner object System.out.println(«Enter username»); String name = s.nextLine();// Read user input System.out.println(«name is: » + name);;// Output user input >>
Методы класса сканера
Существуют различные методы, которые можно использовать для различных типов данных. Посмотрите на таблицу ниже, чтобы узнать об этих методах.
nextBoolean() | Читает логическое значение от пользователя |
nextByte() | Считывает значение байта от пользователя |
nextDouble() | двойное значение от пользователя |
nextFloat() | значение с плавающей точкой от пользователя |
nextInt() | Читает значение int от пользователя |
nextLine() | строковое значение от пользователя |
nextLong() | Читает длинное значение от пользователя |
nextShort() | короткое значение от пользователя |
Примеры
import java.util.Scanner; public class Example < public static void main(String[] args) < Scanner s = new Scanner(System.in); System.out.println(«Enter name, age and salary»); // String input String name = s.nextLine(); // Numerical input int age = s.nextInt(); double salary = s.nextDouble(); // Output input by user System.out.println(«Name: «+ name); System.out.println(«Age: «+ age); System.out.println(«Salary: «+ salary); >>
Когда вы запустите указанный выше код, он попросит вас ввести вышеуказанные данные, такие как имя, возраст и зарплата. И это будет отображать вывод.
Источник: java-blog.ru
Как работать с классом Scanner в Java: примеры
С помощью класса java.util.Scanner можно анализировать простые типы данных и строки. Этот класс принимает данные из файлов, потоков, строк, последовательностей символов или байтов.
Собираем на дрон для штурмовиков Николаевской области. Он поможет найти и уничтожить врага
Входные данные разбиваются на токены. По умолчанию разделителем токенов служит пробел, но его можно заменить строкой ( java.lang.String ) или регулярным выражением ( java.util.regex.Pattern ).
Для создания сканера используется конструктор Scanner , которому передаются входные данные и при необходимости тип кодировки.
Давайте рассмотрим конструкторы этого класса по порядку.
Конструктор public Scanner(Readable source)
Создает сканер, с помощью которого можно получить значения из источника, реализующего интерфейс Readable . Это могут быть объекты классов:
EXCEL ДЛЯ БІЗНЕСУ
Опануйте Excel усього за 1,5 місяця і підвищуйте ефективність бізнес-процесів у себе в компанії.
- BufferedReader;
- CharArrayReader;
- CharBuffer;
- FileReader;
Вот как это делается с помощью класса FileReader :
FileReader reader = new FileReader(new File(«D:Scanner.txt»)); Scanner scanner = new Scanner(reader);
Конструктор public Scanner(InputStream source)
Этот конструктор создает сканер, с помощью которого можно получить значения из указанного входного потока. Байты из такого потока преобразуются в символы (с использованием набора символов по умолчанию для базовой платформы).
Также есть вариант конструктора, который позволяет получать значения из входного потока, преобразовывая байты в символы с использованием набора символов, указанного пользователем:
7 декабря 2022
«Мы используем в качестве разделителя строк метод useDelimeter() » опечатка в методе
30 ноября 2022
Копирую программу-пример в NetBeans — она не компилируется. пишет что не найден класс Scanner.
Anonymous #3210040 Уровень 11
19 ноября 2022
Супер, все понятно!
27 октября 2022
while (scan.hasNext()) < System.out.println(scan.next()); Тут нам не важен тип данных? Где hasNext, Пример с хокку
Murat Уровень 10
12 октября 2022
Расскажите пожалуйста для чего нужен метод close() ? Интуитивно понятно, что он судя по всему «закрывает» наш сканер. Но что при этом происходит? Как себя дальше ведёт сканер? Какие это даёт преимущества или зачем вообще он нужен? К сожалению данный момент не описан достаточно развёрнуто.
Anonymous #3161756 Уровень 18
2 октября 2022
Scanner scanner = new Scanner(«Люблю тебя, Петра творенье,n» + «Люблю твой строгий, стройный вид,n» + «Невы державное теченье,n» + «Береговой ее гранит»); String s = scanner.nextLine(); System.out.println(s); s = scanner.nextLine(); System.out.println(s); s = scanner.nextLine(); System.out.println(s); s = scanner.nextLine(); System.out.println(s); Где программа хранит информацию на какой строке остановился сканер? И что делать если нам надо обратиться к конкретной строке?
Источник: javarush.com
Работа со сканером в Java (ввод и вывод данных)
Предлагаем вспомнить 2 примера из жизни, которые как нельзя кстати будут для изучения данной темы.
- Когда мы путешествуем, в аэропорту наш багаж пропускают через ленту со сканером. Вот она была наша сумка на входе. Просканировал сканер сумку и работник аэропорта четко знает что ж мы там такое везём в ней.
- Точно также работает сканнер в магазинах. Вот был штрих-код на входе, отсканировал штрих-код продавец и теперь всё-всё знает о продукте, который числится под этим штрих-кодом.
Чем то схожие задачи есть и в мире программирования на Java. Например, часто необходимо выполнить такие задачи:
- Пользователь ввёл в консоли какое-то число. А программа должна считать с консоли, какое же число ввёл пользователь.
- Пользователь ввёл в консоли какое-то слово. А программа должна считать с консоли, какое же слово ввёл пользователь.
Для решения таких задач в Java используется сканер (от англ. Scanner). Запомните: если что-то ввели в консоли, а нам надо считать что же именно ввели — используем сканер.
Итак, рассмотрим несколько примеров кода, после которых Вы:
- Поймёте на практике как работает сканер. Всего в статье будет 6 примеров кода. Рекомендуем все примеры кода запускать на своём компьютере и на практике изучать как это работает.
- Освоите 4 метода сканера:
Методы — это, грубо говоря, действия , которые может выполнять Scanner. На самом деле методов у сканера намного больше. Но на данном этапе Вам будет достаточно этих 4 методов. Ну что, поехали.
Пример №1 — с методом nextInt ()
Допустим, мы хотим, чтоб пользователь ввёл в консоль любое целое число от 1 до 10 , а программа вывела ему ответ, какое именно число он ввёл.
Поскольку нам необходимо как бы «сосканировать», какое число ввёл пользователь, всё логично — нам понадобится сканер. Ниже приводим решение и комментарии к решению.
Решение:
import java . util . Scanner ; // импорт сканера
class Test <
public static void main ( String args [ ] ) <
System . out . print ( «Введите любое целое число от 1 до 10: » ) ;
Scanner scan = new Scanner ( System . in ) ;
int number = scan . nextInt ( ) ;
System . out . println ( «Вы ввели число » + number ) ;
Если Вы попробуете запустить этот код на своём компьютере, то в консоли Вы увидите следующее:
Введите любое целое число от 1 до 10:
Затем, если Вы, например, введёте число 5, то в консоли будет следующее:
Введите любое целое число от 1 до 10: 5
Вы ввели число 5
Комментарии:
В статье «Что такое библиотека Java?» мы с Вами разобрались, что в Java есть огромная библиотека протестированного кода — это уже готовые решения ко многим задачам, которые стоят перед программистами в их ежедневной работе . Также мы говорили о различных пакетах, классах и методах. Так вот, сейчас мы будем с Вами работать с пакетом java.util. В этом пакете есть класс Scanner. И у него есть методы (действия), которые позволяют работать с вводом и выводом информации в консоль.
Но чтобы мы смогли использовать в нашем коде класс Scanner, нам необходимо сделать 3 шага.
Шаг №1 — обязательно прописать вот такую строчку в коде
Источник: vertex-academy.com