我是java新手,我想知道是否有其他方法可以代替has.nextInt(),因为这个方法会弄乱我的扫描仪。例如
do {
System.out.println("Please enter your full name: ");
memberName = input.nextLine();
if (input.hasNextInt()) {
System.out.println("Your name cannot contain a number");
input.next();
} else {
successful = true;
}
} while (successful == false);
控制台
Create new member
Please enter your full name:
jack
jack
我必须输入我的名字两次才能继续 我知道存在这样的问题,但我没有找到任何解决方案。谢谢
编辑
我试图确保输入根本不包含任何数字,如果包含则
System.out.print("Your name cannot contain any numbers");
发生了
最佳答案
这里 if(input.hasNextInt()){
的用法是错误的。因为您想在之前输入的字符串中查找数字,即 memberName
您可以使用正则表达式来实现此目的:
Pattern digitPattern = Pattern.compile("\\d+");
然后您可以使用它来验证任何字符串:
System.out.println(digitPattern.matcher("Marcinek 234").matches());
关于java - .hasNextInt 的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34165170/