Проверка правильности ввода типа Java

    System.out.println("What letter should the word begin with?");
        char letter = input.next().charAt(0);
        if(letter != ''){
            throw new InputMismatchException("Please input a letter");
        }

Я хочу проверить, если пользователь вводит что-либо, кроме строки / символа. Если они есть, я хочу выдать исключение, которое говорит, что ввод неправильный. Это мой текущий код, но он не компилируется.

1 ответ

Решение

Вы можете проверить, letter такое письмо, как это:

if ((letter >= 'A' && letter <= 'Z') || (letter >= 'a' && letter <= 'z'))

На самом деле, Scanner имеет эту удобную перегрузку next(String pattern) это бросает InputMismatchException автоматически, если ввод не соответствует шаблону:

char letter = input.next("[a-zA-Z]").charAt(0);

[a-zA-Z] это шаблон, используемый здесь. Он принимает любой символ от a до z или от A до Z.

Другие вопросы по тегам