簡體   English   中英

當要求用戶在Java中循環輸入一些字符串時,如何僅保留文本打印一次

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM