Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Освоение Java Scanner: подробное руководство с практическими примерами

Освоение Java Scanner

Класс 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();
    }
}

Вывод

Введите ваше имя: Kelvin
Меня зовут Kelvin

Строка Scanner input = new Scanner(System.in); создаёт сканер, слушающий клавиатурный ввод. Метод nextLine() потребляет всю строку до перевода строки.


Импорт класса Scanner

Перед использованием Scanner импортируйте его:

import java.util.Scanner;

Создание объектов Scanner

В зависимости от источника ввода инстанцируйте Scanner так:

// Из входного потока (например, System.in)
Scanner sc1 = new Scanner(InputStream input);
// Из файла
Scanner sc2 = new Scanner(File file);
// Из строки
Scanner sc3 = new Scanner(String str);

Ключевые методы Scanner для ввода

Scanner предлагает множество методов для чтения разных типов данных. Справочная таблица:

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

Пример 2: использование nextInt()

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Введите целое число: ");
        int data1 = input.nextInt();
        System.out.println("Используя nextInt(): " + data1);
        input.close();
    }
}

Вывод

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

Пример 3: использование nextDouble()

import java.util.Scanner;

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

Вывод

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

Пример 4: использование next()

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Введите ваше имя: ");
        String value = input.next();
        System.out.println("Используя next(): " + value);
        input.close();
    }
}

Вывод

Введите ваше имя: Jonny Walker
Используя next(): Jonny

Обратите внимание: next() останавливается на первом пробеле, поэтому захватывается только имя.


Пример 5: использование nextLine()

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Введите ваше имя: ");
        String value = input.nextLine();
        System.out.println("Используя nextLine(): " + value);
        input.close();
    }
}

Вывод

Введите ваше имя: Jonny Walker
Используя nextLine(): Jonny Walker

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

Рекомендуемое чтение: Java Scanner пропускает nextLine()


Scanner с BigInteger и BigDecimal

Для высокоточных чисел Scanner поддерживает:

Пример: чтение BigInteger и BigDecimal

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        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

Как работает Scanner внутренне

Scanner читает целую строку, затем разбивает её на токены, используя пробелы по умолчанию. Каждый токен извлекается соответствующим методом. Например, для ввода He is 22 токены: He, is, 22.

Совет: Токены разделяются пробелами, табуляцией или новой строкой, если не настроен другой разделитель.

java

  1. Ключевое слово final в Java: переменные, методы и классы
  2. Оператор instanceof в Java: полное руководство с примерами
  3. Статические вложенные классы в Java: использование, отличия и примеры
  4. Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
  5. Паттерн Singleton в Java: как реализовать и безопасно использовать
  6. Рефлексия в Java: инспекция классов, методов и полей во время выполнения
  7. Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
  8. Освоение Java Scanner: подробное руководство с практическими примерами
  9. Освоение Java Generics: создание переиспользуемого, типобезопасного кода
  10. Мастерство файловых операций в Java с java.io: создание, чтение, запись и удаление