通过问题输入报告所有者的名字作为字符串。
需要一个正则表达式来有条件地检查,以确保名字不包含任何数字字符(0 - 9 之间的数字)。如果包含,则必须将其删除。名字也不能包含任何空格。
do
{
System.out.println("Please enter your FIRST name:");
firstName = keyboard.next();
firstName= firstName.toUpperCase();
}
while( !firstName.matches("^/s^[a-zA-Z]+$/s"));
System.out.println("Thanks " + firstName);
<小时/>
Output
p
Please enter your FIRST name:
p p
Please enter your FIRST name:
Please enter your FIRST name:
最佳答案
你的正则表达式搞砸了。试试这个:
while(!firstName.matches("^[^\\d\\s]+$"));
正则表达式 "^[^\\d\\s]+$"
表示“非数字或空格,且至少有一个字符”
关于Java 正则表达式(无空格或 0-9),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11481250/