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

Опубликовано: 15 Февраля, 2022

Сканер - это класс в пакете java.util, используемый для получения ввода примитивных типов, таких как int, double и т. Д., А также строк. Это самый простой способ чтения ввода в программе Java, хотя и не очень эффективный, если вам нужен метод ввода для сценариев, в которых время является ограничением, как в соревновательном программировании.

  • Чтобы создать объект класса Scanner, мы обычно передаем предопределенный объект System.in, который представляет стандартный входной поток. Мы можем передать объект класса File, если хотим прочитать ввод из файла.
  • Для чтения числовых значений определенного типа данных XYZ используется функция nextXYZ (). Например, чтобы прочитать значение типа short, мы можем использовать nextShort ()
  • Для чтения строк мы используем nextLine ().
  • Чтобы прочитать один символ, мы используем next (). CharAt (0). Функция next () возвращает следующий токен / слово во входных данных в виде строки, а функция charAt (0) возвращает первый символ в этой строке.

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

Вход :

 Компьютерщик
F
40
9876543210
9.9

Выход :

 Имя: Компьютерщик
Пол: F
Возраст: 40
Мобильный номер: 9876543210
CGPA: 9,9

Иногда нам нужно проверить, имеет ли следующее считываемое значение определенный тип или закончился ли ввод (обнаружен маркер EOF).

Затем мы проверяем, имеет ли вход сканера тот тип, который нам нужен, с помощью функций hasNextXYZ (), где XYZ - это тип, который нас интересует. Функция возвращает true, если у сканера есть токен этого типа, в противном случае - false. Например, в приведенном ниже коде мы использовали hasNextInt (). Чтобы проверить строку, мы используем hasNextLine (). Точно так же, чтобы проверить одиночный символ, мы используем hasNext (). CharAt (0).

Let us look at the code snippet to read some numbers from console and print their mean.

// 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++;
        }
        int mean = sum / count;
        System.out.println("Mean: " + mean);
    }
}

Вход:

 101
223
238
892
99
500
728

Выход:

 Среднее: 397

Эта статья предоставлена Сукритом Бхатнагаром . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью и отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .