2

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

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

3 回答 3

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");
}
于 2013-10-20T15:45:13.490 回答
0

您不能让用户在输入时只在控制台中输入字符,但您可以验证他的输入并在输入后检查它是否只包含字母字符,如果无效,请用户再次输入他的数据。

要检查 String 是否仅包含字母字符,您可以遍历其所有字符并使用Character.isAlphabetic(character)它们,或者只使用matches像这样的正则表达式userData.matches("\\p{IsAlphabetic}+");

Character.isAlphabetic并且\\p{IsAlphabetic}比检查范围有优势,a-zA-Z因为它也接受非英文字符,如ą, ę

于 2013-10-20T15:43:00.620 回答
0
boolean numberOrNot = name.matches(".*\\d.*");

numberOrNot如果它的名字有任何数字,它将true是,否则它将是false

regex 表示,正则表达式。 -?\\d+是一个正则表达式。

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

但这是验证,我认为您不能对控制台进行限制。

于 2013-10-20T15:37:09.957 回答