我想验证 java 应用程序中的单个字符。
我不希望用户能够输入 [a - p]
范围之外的字符(忽略大写或小写)或数字
。
Scanner input = new Scanner(System.in);
System.out.print("Choose letter in range [a - p]");
letter = input.next().charAt(0);
有什么想法吗?
最佳答案
您可以使用regex过滤输入
.matches("^[a-pA-P0-9]*$") //this will not allow outside range of [a-p A-P] or numbers
^
断言字符串开头的位置
-
使用相邻标记创建字符范围
a-p
a
和 p
之间的单个字符(区分大小写)
A-P
A
和 P
之间的单个字符(区分大小写)
0-9
0 到 9 之间的单个字符
*
重复之前的标记零
到无限
次,尽可能多的次数
$
断言字符串末尾的位置
像这样:
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");
}
关于Java字符输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29761008/