logo

Клас сканера в Java

У Java Scanner — це клас у пакеті java.util, який використовується для отримання вхідних даних примітивних типів, таких як int, double тощо, і рядків.

Використання класу Scanner у Java — це найпростіший спосіб читання вхідних даних у програмі Java, хоча й не дуже ефективний, якщо вам потрібен метод введення для сценаріїв, де час є обмеженням, як у змагальному програмуванні.

Типи введення Java Scanner

Клас Scanner допомагає прийняти стандартний потік введення в Java. Отже, нам потрібні деякі методи для вилучення даних із потоку. Нижче наведено методи, які використовуються для отримання даних:



метод

опис

nextBoolean()

Використовується для читання логічного значення

nextByte()

Використовується для читання значення байта

nextDouble()

Використовується для читання подвійного значення

nextFloat()

Використовується для читання значення Float

nextInt()

Використовується для читання значення Int

наступнийрядок()

Використовується для читання значення лінії

nextLong()

Використовується для читання довгого значення

nextShort()

Використовується для читання короткого значення

Давайте розглянемо фрагмент коду для читання даних різних типів.

Приклади Java Scanner Class

Приклад 1:

Java




// Java program to read data of various types> // using Scanner class.> import> java.util.Scanner;> // Driver Class> public> class> ScannerDemo1 {> >// main function> >public> static> void> main(String[] args)> >{> >// Declare the object and initialize with> >// predefined standard input object> >Scanner sc =>new> Scanner(System.in);> >// String input> >String name = sc.nextLine();> >// Character input> >char> gender = sc.next().charAt(>0>);> >// Numerical data input> >// byte, short and float can be read> >// using similar-named functions.> >int> age = sc.nextInt();> >long> mobileNo = sc.nextLong();> >double> cgpa = sc.nextDouble();> >// Print the values to check if the input was> >// correctly obtained.> >System.out.println(>'Name: '> + name);> >System.out.println(>'Gender: '> + gender);> >System.out.println(>'Age: '> + age);> >System.out.println(>'Mobile Number: '> + mobileNo);> >System.out.println(>'CGPA: '> + cgpa);> >}> }>

>

>

Введення

Geek F 40 9876543210 9.9>

Вихід

Name: Geek Gender: F Age: 40 Mobile Number: 9876543210 CGPA: 9.9>

Іноді нам потрібно перевірити, чи наступне значення, яке ми читаємо, має певний тип, чи введення закінчилося (виявлено маркер EOF).

Потім ми перевіряємо, чи вхідні дані сканера належать до потрібного нам типу за допомогою функцій hasNextXYZ(), де XYZ — це тип, який нас цікавить. Функція повертає true, якщо сканер має маркер такого типу, інакше — false. Наприклад, у наведеному нижче коді ми використали hasNextInt(). Щоб перевірити наявність рядка, ми використовуємо hasNextLine(). Так само, щоб перевірити один символ, ми використовуємо hasNext().charAt(0).

приклад 2:

Давайте подивимося на фрагмент коду, щоб прочитати деякі числа з консолі та надрукувати їх середнє значення.

Java




// Java program to read some values using Scanner> // class and print their mean.> import> java.util.Scanner;> public> class> ScannerDemo2 {> >public> static> void> main(String[] args)> >{> >// Declare an object and initialize with> >// predefined standard input object> >Scanner sc =>new> Scanner(System.in);> >// Initialize sum and count of input elements> >int> sum =>0>, count =>0>;> >// Check if an int value is available> >while> (sc.hasNextInt()) {> >// Read an int value> >int> num = sc.nextInt();> >sum += num;> >count++;> >}> >if> (count>>0>) {> >int> mean = sum / count;> >System.out.println(>'Mean: '> + mean);> >}> >else> {> >System.out.println(> >'No integers were input. Mean cannot be calculated.'>);> >}> >}> }>

>

>

сортування списку масивів java

Введення

1 2 3 4 5>

Вихід

Mean: 3>

Важливі моменти про клас Java Scanner

  • Щоб створити об’єкт класу Scanner, ми зазвичай передаємо попередньо визначений об’єкт System.in, який представляє стандартний вхідний потік. Ми можемо передати об’єкт класу File, якщо хочемо прочитати вхідні дані з файлу.
  • Для читання числових значень певного типу даних XYZ використовується функція nextXYZ(). Наприклад, щоб прочитати значення типу short, ми можемо використати nextShort()
  • Для читання рядків ми використовуємо nextLine().
  • Щоб прочитати один символ, ми використовуємо next().charAt(0). Функція next() повертає наступний маркер/слово у вхідних даних у вигляді рядка, а функція charAt(0) повертає перший символ у цьому рядку.
  • Клас Scanner читає цілий рядок і ділить рядок на маркери. Токени — це маленькі елементи, які мають певне значення для компілятора Java. Наприклад, припустимо, що є вхідний рядок: Як справи
    У цьому випадку об’єкт сканера прочитає весь рядок і розділить рядок на лексеми: How, are і you. Потім об’єкт повторює кожен маркер і зчитує кожен маркер, використовуючи свої різні методи.