Чтение ввода данных через консоль в Java: класс Scanner
Быстрый ответ
Если вам нужно прочитать данные из консоли, используйте класс Scanner и создайте его экземпляр с использованием new Scanner(System.in). Чтобы считать строку, примените метод scanner.nextLine(), а для чтения целочисленного значения используйте scanner.nextInt().
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Пожалуйста, введите текст: ");
        String text = input.nextLine(); // здесь идет считывание текста
        System.out.println("Вы ввели следующий текст: " + text); // здесь происходит вывод текста
    }
}
Чтобы проверить работу приведенного кода, запустите его, введите текст и нажмите Enter.

Изучаем Scanner: детали и нюансы
Чтение данных различных типов
Вы можете использовать класс Scanner для чтения разнообразных типов данных, в том числе строк и чисел, обращаясь к соответствующим методам.
Scanner scan = new Scanner(System.in);
// Чтение строки данных, например, имени пользователя
System.out.print("Напишите ваше имя пользователя: ");
String username = scan.nextLine(); // Отлично подобрано имя!
// Чтение целочисленного значения, например, возраста пользователя
System.out.print("Укажите ваш возраст: ");
int age = scan.nextInt();
// Этот шаг очищает буфер ввода
scan.nextLine();
Не забывайте очищать буфер ввода с помощью scan.nextLine(), чтобы предотвратить последующие ошибки при чтении данных.
Обработка исключений с использованием try-catch
Чтобы правильно обработать возможные ошибки, рекомендуется обернуть код, связанный со Scanner, в блок try-catch.
try {
    // Здесь используется Scanner
} catch (Exception e) {
    System.out.println("Случилась ошибка: " + e.getMessage());
}
Закрывание Scanner после использования
Для освобождения системных ресурсов важно закрыть Scanner после его использования, применив метод scan.close(). Для надежности вы можете использовать блок finally или конструкцию try-with-resources для автоматического закрытия Scanner.
Визуализация
Представьте себе, что Scanner это GPS-навигатор (🗺️), который помогает вам вести путь к нужной точке ввода данных (📍):
Гид (🗺️): Scanner
Старт (🚀): scanner.nextLine() или scanner.nextInt()
Будьте внимательны к ожиданиям пользователя при движении к цели:
Scanner scanner = new Scanner(System.in); // Включаем наш GPS (🗺️)
System.out.print("Что вы ожидаете: "); // Готовимся к старту (🚀)
String expectations = scanner.nextLine(); // Достигли цели (📍)
System.out.println("Ваши ожидания: " + expectations); // Отмечаем успешное достижение!
Мы успешно реализовали "навигацию" по вводу пользователя, используя наш навигатор!
Повышаем квалификацию: RegEx, синхронизация, настройка разделителей
Проверка данных с использованием RegEx
Применяйте метод next(String pattern) для проверки вводимых данных на соответствие образцам (паттернам).
System.out.print("Введите ваш email: ");
String email = scan.next("\\S+@\\S+\\.\\S+"); // Таким образом проводится валидация электронной почты!
Использование BufferedReader для управления и синхронизации
BufferedReader предоставляет более контролируемое чтение текста. Используйте его чтобы преобразовывать строки в числовой формат:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int number = Integer.parseInt(reader.readLine()); // Попрощайтесь со строками и салютуйте числам!
Настройка разделителей и работа в многопоточных приложениях
Метода useDelimiter() позволяет устанавливать свои разделители для разбиения данных на фрагменты (токены).
Работая с многопоточными приложениями, используйте внешнюю синхронизацию, чтобы обеспечить потокобезопасность Scanner.
Полезные материалы
- Scanner (Java Platform SE 8) — Официальная документация Oracle на класс Scanner.
 - Ввод-вывод информации в Java из командной строки — Руководство по вводу и выводу информации в Java.
 - Как получить ввод пользователя в Java? – Stack Overflow — Советы от сообщества разработчиков по использованию Scanner.
 - Класс Scanner в Java – GeeksforGeeks — Подробное руководство об использовании методов класса Scanner.
 - Класс Scanner в Java | DigitalOcean — Пошаговое руководство по классу Scanner.
 - Scanner в Java – TutorialsPoint — Обзор класса Scanner с примерами кода.
 


