[英]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.