У цьому посібнику ми дізнаємося про Java Scanner та його методи за допомогою прикладів.
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 наступний ()
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(); ) )
Вихідні дані
Введіть своє ім'я: Jonny Walker Використовуючи next (): Jonny
У наведеному вище прикладі ми використовували 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
У цьому випадку об'єкт сканера прочитає весь рядок і розділить рядок на маркери: " He ", " is " і " 22 ". Потім об’єкт перебирає кожен маркер і зчитує кожен маркер, використовуючи різні методи.
Примітка . За замовчуванням пробіли використовуються для розподілу маркерів.