Как в Java обрабатывать введенное в консоль в реальном времени, то есть прямо во время ввода и выбрасывать исключение, если ввод неверный?
Мне нужно реализовать ввод данных в Java таким образом, что исключение будет выбрасываться даже без нажатия Enter для конца ввода, то есть моментально. Пытался что-то искать на эту тему, все тщетно, не понимаю, как можно добиться этого
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Класс Scanner может обрабатывать значения в потоке ввода и проверять наличие соответствующих токенов до того, как будет введена строка целиком.
Например, для ввода "слова" длиной не более 10 символов можно применить код:
Scanner sc = new Scanner(System.in);
String name = sc.next("\\S{1,10}"); // От 1 до 10 непробельных символов
При вводе любого пробела после ввода слишком длинного слова будет выброщено исключение:
123451234512 Exception in thread "main" 1java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.next(Scanner.java:1525)
at MyClass.main(MyClass.java:11)