вы можете использовать regex для входного фильтра
.matches("^[a-pA-P0-9]*$") //this will not allow outside range of [a-p A-P] or numbers
^
положение Утверждай в начале строки
-
Создание диапазона символов с adjascent Маркеры
a-p
одного символа в диапазоне между a
и p
(чувствительны к регистру)
A-P
Один символ в диапазоне между A
и P
(чувствителен к регистру)
0-9
Один в диапазоне от 0 до 9
*
Повторите предыдущие лексем zero
в infinite
раз, столько раз, сколько это возможно положение
$
Assert в конце строки
так:
Scanner input = new Scanner(System.in);
System.out.print("Choose letter in range [a - p]");
letter = input.next().charAt(0);
if (Character.toString(letter).matches("^[a-pA-P0-9]*$")) {
System.out.println("valid input");
}else{
System.out.println("invalid input");
}
SEE REGEX DEMO
Улучшенный вопрос грамматики. – dave