【问题标题】:Validating user input in Java (Scanner)?在 Java(扫描仪)中验证用户输入?
【发布时间】:2013-02-03 17:49:22
【问题描述】:

我正在尝试获取一个使用 Scanner 方法的程序,以检查无效输入,例如数字和特殊字符(即!@ £ $ % ^),并在输入时简单地打印出错误。我尝试使用 match() 方法修复它,但它仍然会打印出我输入的所有内容! (即使有特殊字符和数字)

private static void input(String s) 
{
   Scanner userInput = new Scanner(System.in);
   String words;
   System.out.println("Enter your words: ");
   words = userInput.nextLine();

if (words.matches("[^a-zA-Z0-9 ]")) 
{ 
    System.out.println("Error, no number input or special character input please: ");
}

else 
    {
        System.out.println(words);
    }

}

【问题讨论】:

    标签: java


    【解决方案1】:

    您应该在正则表达式的前后添加一个 .*。比如:

    if (words.matches(".*[^a-zA-Z0-9 ].*")) 
    

    这个想法是你应该允许任何前面或后面的字符到你想要省略的字符。

    【讨论】:

    • 并在布尔子句中添加!(仅在存在不想要的符号时输出错误消息)。
    猜你喜欢
    • 2018-05-30
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    相关资源
    最近更新 更多