[英]How to keep Text print only once when asking a user to re-enter some string in loop in Java
我想让用户在String类型中输入一个数字,然后检查它是否为数字,如果不是,则再次要求重新输入该字符串。 我有这样的代码:
System.out.print("Enter first number: ");
firstNum = scan.next();
while(validateNum(firstNum) == false) {
System.out.print("Please, enter number only: ");
firstNum = scan.next();
}
这是validateNum方法:
private static boolean validateNum(String num) {
if (num.matches("[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?")){
return true;
}
return false;
}
但是问题是,当我测试它并输入一些带有空格的文本时,它会打印“请仅输入一个数字”,这是输入字符串中出现的空格的次数。 我试图从字符串中删除空格,然后检查它,但它仍然可以打印出许多文字。
您正在使用scan.next()
。 这将返回空格之前的内容。 您希望scan.nextLine()
扫描用户输入的整行
这是Scanner
类及其方法的文档 。
简而言之:
next()
:扫描下一个完整令牌
nextLine()
:扫描整行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.