如何确保用户不以他/她的名义输入数字?

时间:2013-10-20 15:32:07

标签: java string variables

我要求用户输入他/她的名字。 我该怎么做才能将数字排除在外?

String name = " ";
System.out.println("Enter Name");
name = Keyboard.readString();

3 个答案:

答案 0 :(得分:4)

使用正则表达式检查输入和循环以获得一个好的答案:

String name = "";
while (true) {
    System.out.println("Enter Name");
    name = Keyboard.readString();
    if (name.matches("[a-zA-Z]+"))
        break;
    System.out.println("Invalid input. Enter letters only");
}

答案 1 :(得分:0)

boolean numberOrNot = name.matches(".*\\d.*");

numberOrNot如果名称中包含任何数字,则为true,否则为false

正则表达式表示正则表达式。 -?\\d+是正则表达式。

  • -?:负号,可能没有或一个
  • \\d+:一个或多个数字

但这是验证,我认为你不能对控制台施加限制。

答案 2 :(得分:0)

你不能让用户在键盘中只输入字符,而不能在输入时输入任何其他内容,但是你可以验证他的输入并检查它是否只包含字母字符后,如果无效则要求用户再次键入他的数据。

要检查String是否仅包含字母字符,您可以迭代其所有字符并在其上使用Character.isAlphabetic(character),或者只使用matches和正则表达式userData.matches("\\p{IsAlphabetic}+");

Character.isAlphabetic\\p{IsAlphabetic}优于检查a-zA-Z范围,因为它还会接受ąę等非英文字符。