English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Список (List)

Java Очередь (Queue)

Java Словарь (Map)

Java Множество (Set)

Java Ввод/Вывод (I/O)

Java Reader/Writer

Другие темы Java

Java Scanner класс

В этом руководстве мы будем изучать Java Scanner и его методы с помощью примеров.

Класс PrintWriter пакета java.io используется для записи выводных данных в виде обычно читаемого текста.

Класс Scanner пакета java.util используется для чтения вводных данных из различных источников (например, вводных потоков, пользователей, файлов и т.д.). Давайте рассмотрим пример.

Пример 1: Чтение строки с помощью сканера

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        // Создание объекта Scanner
        Scanner input = new Scanner(System.in);
        System.out.print("Введите имя:    ");
        // Получает ввод с клавиатуры
        String name = input.nextLine();
        // Печатает имя
        System.out.println("Мое имя - " + name);
        // Закрывает сканер
        input.close();
    }
}

Результат вывода

Введите имя:    Jack
Мое имя -    Jack

В примере выше обратите внимание на следующие строки

Scanner input = new Scanner(System.in);

Здесь мы создаем объект Scanner с именем input.

Параметр System.in используется для получения ввода из стандартного ввода. Как ввод с клавиатуры.

Затем мы используем метод nextLine() класса Scanner для чтения строки от пользователя.

Теперь у вас есть некоторое представление о Scanner, давайте его более подробно рассмотрим.

Импорт класса сканера

Из上面的 примера можно увидеть, что сначала нужно импортировать пакет java.util.Scanner, затем можно использовать класс Scanner.

import java.util.Scanner;

Создание объекта сканера с помощью Java

Как было сказано выше, после импорта пакета можно создать объект Scanner.

// Из вводного потока считывать ввод
Scanner sc1 = new Scanner(InputStream input);
// Из файла считывать ввод
Scanner sc2 = new Scanner(File file);
// Из строки считывать ввод
Scanner sc3 = new Scanner(String str);

Здесь мы создаем объект класса Scanner, которые будут соответственно читать вводInputStream, чтение ввода из файлов и строк.

Методы ввода сканера Java

Класс Scanner предоставляет различные методы, которые позволяют нам читать различные типы ввода.

МетодОписание
nextInt()Читать int от пользователя
nextFloat()Читать float от пользователя
nextBoolean()Читать boolean от пользователя
nextLine()Читать строку от пользователя
next()Читать слово от пользователя
nextByte()Читать byte от пользователя
nextDouble()Читать double от пользователя
nextShort()Читать short от пользователя
nextLong()Читать long от пользователя

Пример 2: Метод nextInt() сканера Java

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        //Создание объекта сканера
        Scanner input = new Scanner(System.in);
        System.out.println("Ввести целое число:");
        //Чтение целого значения int
        int data1 = input.nextInt();
        System.out.println("Используя nextInt(): " + data1);
        input.close();
    }
}

Результат вывода

Ввести целое число:
22
Используя nextInt(): 22

В предыдущем примере мы использовали метод nextInt() для чтения целого значения.

Пример 3: Метод nextDouble() сканера Java

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Создание объекта Scanner
      Scanner input = new Scanner(System.in);
      System.out.print("Ввести двойную точность: ");
      //Чтение двойной точности
      double value = input.nextDouble();
      System.out.println("Используя nextDouble(): " + value);
      input.close();
   }
}

Результат вывода

Ввести двойную точность: 33.33
Используя nextDouble(): 33.33

В предыдущем примере мы использовали метод nextDouble() для чтения плавающей точки.

Пример 4: Метод next() сканера Java

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Создание объекта Scanner
      Scanner input = new Scanner(System.in);
      System.out.print("Enter your name: ");
      //Чтение целого слова
      String value = input.next();
      System.out.println("Используя next(): " + value);
      input.close();
   }
}

Результат вывода

Enter your name: Jonny Walker
Используя next(): Jonny

В предыдущем примере мы использовали метод next() для чтения строки от пользователя.

Здесь мы предоставляем полное имя. Однако, метод next() читает только имя.

Это потому, что метод next() читает вводПробелыСимволы. Как только встречается пробел, он возвращает строку (без пробелов).

Пример 5: Метод nextLine() Java сканера

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Создание объекта Scanner
      Scanner input = new Scanner(System.in);
      System.out.print("Enter your name: ");
      //Чтение целой строки
      String value = input.nextLine();
      System.out.println("Использование nextLine(): " + value);
      input.close();
   }
}

Результат вывода

Enter your name: Jonny Walker
Использование nextLine(): Jonny Walker

В первом примере мы использовали метод nextLine() для чтения строки от пользователя.

В отличие от next(), метод nextLine() читает целую строку, включая пробелы. Метод заканчивается при встрече следующей строки символов \n.

Java сканер BigInteger и BigDecimal

Java сканер также может использоваться для чтения больших целых чисел и больших десятичных чисел.

  • nextBigInteger() - Чтение большого целого значения от пользователя

  • nextBigDecimal() - Чтение большого десятичного значения от пользователя

Пример 4: Чтение BigInteger и BigDecimal

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Создание объекта Scanner
      Scanner input = new Scanner(System.in);
      System.out.print("Ввведите большое целое число: ");
      //Чтение большого целого числа
      BigInteger value1 = input.nextBigInteger();
      System.out.println("Использование nextBigInteger(): " + value1);
      System.out.print("Ввведите большое десятичное число: ");
      //Чтение большого десятичного числа
      BigDecimal value2 = input.nextBigDecimal();
      System.out.println("Использование nextBigDecimal(): " + value2);
      input.close();
   }
}

Результат вывода

Ввести большой целое число: 987654321
Использование nextBigInteger(): 987654321
Ввести большой десятичный: 9.55555
Использование nextBigDecimal(): 9.55555

В вышеуказанном примере мы используем пакеты java.math.BigInteger и java.math.BigDecimal для чтения BigInteger и BigDecimal.

Как работает Java сканер

Сканер класса читает целую строку и разбивает её на знаки. Токены - это небольшие элементы, имеющие определенное значение для Java компилятора. Например

Предположим, что у нас есть строка ввода:

He is 22

В этом случае, сканер объекта читает целую строку и разбивает её на токены: « He ”,“ is » и « 22 ». Затем объект遍яет каждый токен и использует его различные методы для чтения каждого токена.

вниманиепо умолчанию, пробел используется для разделения маркеров.