Java字符输入验证

标签 java validation

我想验证 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 ap 之间的单个字符(区分大小写)

A-P AP 之间的单个字符(区分大小写)

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");
    }

SEE REGEX DEMO

关于Java字符输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29761008/

相关文章:

java - Vaadin View 中的 Autowiring 服务和组件不工作

java - Spring Framework MVC 中的 "Webpage has expired"

java - 继承 - 重写变异方法?

jquery - 提交前如何验证表单

PHP 表单验证函数

java - 错误: Could not find or load main class at one call and no error at another call in the same script

java - 如何关闭自动提交并使用@transactional 进行显式提交

validation - 在不重新加载页面的情况下在jsp中显示错误消息

c++ - 抛出(或相应地)NULL 函数参数还是让它全部爆炸?

php - 在客户端重用 Yii Framework CValidator 规则