В этом руководстве мы узнаем о Java-сканере и его методах с помощью примеров.
Scanner
Класс java.util
пакета используется для чтения входных данных из различных источников , таких как входные потоки, пользователи, файлы и т.д. Давайте рассмотрит пример.
Пример 1. Прочтите строку текста с помощью сканера
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // takes input from the keyboard String name = input.nextLine(); // prints the name System.out.println("My name is " + name); // closes the scanner input.close(); ) )
Вывод
Введите свое имя: Кельвин Меня зовут Кельвин
В приведенном выше примере обратите внимание на строку
Scanner input = new Scanner(System.in);
Здесь мы создали объект Scanner
именованного ввода.
System.in
Параметр используется для ввода взять из стандартного ввода. Он работает так же, как ввод с клавиатуры.
Затем мы использовали nextLine()
метод Scanner
класса, чтобы прочитать строку текста от пользователя.
Теперь, когда у вас есть некоторое представление об этом Scanner
, давайте рассмотрим его подробнее.
Импортировать класс сканера
Как видно из приведенного выше примера, нам нужно импортировать java.util.Scanner
пакет, прежде чем мы сможем использовать Scanner
класс.
import java.util.Scanner;
Чтобы узнать больше об импорте пакетов, посетите Java Packages.
Создайте объект сканера в Java
После импорта пакета вот как мы можем создавать Scanner
объекты.
// read input from the input stream Scanner sc1 = new Scanner(InputStream input); // read input from files Scanner sc2 = new Scanner(File file); // read input from a string Scanner sc3 = new Scanner(String str);
Здесь мы создали объекты Scanner
класса, которые будут читать ввод из InputStream, File и String соответственно.
Методы сканера Java для ввода
Scanner
Класс предоставляет различные методы , которые позволяют читать входы различных типов.
Метод | Описание |
---|---|
nextInt() | читает int значение от пользователя |
nextFloat() | читает float значение от пользователя |
nextBoolean() | читает boolean значение от пользователя |
nextLine() | читает строку текста от пользователя |
next() | читает слово пользователя |
nextByte() | читает byte значение от пользователя |
nextDouble() | читает doubl значение e от пользователя |
nextShort() | читает short значение от пользователя |
nextLong() | читает long значение от пользователя |
Пример 2: Java-сканер nextInt ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates a Scanner object Scanner input = new Scanner(System.in); System.out.println("Enter an integer: "); // reads an int value int data1 = input.nextInt(); System.out.println("Using nextInt(): " + data1); input.close(); ) )
Вывод
Введите целое число: 22 Используя nextInt (): 22
В приведенном выше примере мы использовали nextInt()
метод для чтения целочисленного значения.
Пример 3: Java-сканер nextDouble ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter Double value: "); // reads the double value double value = input.nextDouble(); System.out.println("Using nextDouble(): " + value); input.close(); ) )
Вывод
Введите значение Double: 33,33. Используя nextDouble (): 33,33
В приведенном выше примере мы использовали nextDouble()
метод для чтения значения с плавающей запятой.
Пример 4: Java-сканер next ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire word String value = input.next(); System.out.println("Using next(): " + value); input.close(); ) )
Вывод
Введите свое имя: Джонни Уокер Использование next (): Джонни
В приведенном выше примере мы использовали next()
метод для чтения строки от пользователя.
Здесь мы указали полное имя. Однако next()
метод считывает только имя.
Это связано с тем, что next()
метод считывает ввод до символа пробела . Как только пробел встречается, он возвращает строку (за исключением пробела).
Пример 5: Java-сканер nextLine ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire line String value = input.nextLine(); System.out.println("Using nextLine(): " + value); input.close(); ) )
Вывод
Введите свое имя: Джонни Уокер Использование nextLine (): Джонни Уокер
В первом примере мы использовали nextLine()
метод для чтения строки от пользователя.
В отличие от next()
этого nextLine()
метод считывает всю строку ввода, включая пробелы. Метод завершается , когда он встречает следующий символ строки .
Recommended Reading: Java Scanner skipping the nextLine().
Java Scanner with BigInteger and BigDecimal
Java scanner can also be used to read the big integer and big decimal numbers.
- nextBigInteger() - reads the big integer value from the user
- nextBigDecimal() - reads the big decimal value from the user
Example 4: Read BigInteger and BigDecimal
import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter a big integer: "); // reads the big integer BigInteger value1 = input.nextBigInteger(); System.out.println("Using nextBigInteger(): " + value1); System.out.print("Enter a big decimal: "); // reads the big decimal BigDecimal value2 = input.nextBigDecimal(); System.out.println("Using nextBigDecimal(): " + value2); input.close(); ) )
Output
Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555
In the above example, we have used the java.math.BigInteger
and java.math.BigDecimal
package to read BigInteger
and BigDecimal
respectively.
Working of Java Scanner
Scanner
Класс считывает всю строку и делит строку на лексемы. Токены - это небольшие элементы, которые имеют некоторое значение для компилятора Java. Например,
Предположим, есть входная строка:
He is 22
В этом случае объект сканера прочитает всю строку и разделит строку на токены: « Он », « есть » и « 22 ». Затем объект перебирает каждый токен и читает каждый токен, используя свои различные методы.
Примечание . По умолчанию для разделения токенов используется пробел.