簡體   English   中英

相當於 string.isempty 的 Int

[英]Int equivalent of string.isempty

我希望這是一個簡單的修復。 我正在尋找一種方法來檢測用戶在提示輸入 int 值時是否按下了回車鍵。 我知道 the.isEmpty 不適用於聲明為 int 的值,解決這個問題的最佳方法是什么?

System.out.println("Please enter the first number:");
    user_number1 = input.nextInt();
        if (user_number1.isEmpty){

        }

int不可能為空。 input.nextInt()將不會繼續,直到用戶輸入一個非空格的值。 如果它不是int ,它將拋出InputMismatchException 這記錄在Scanner.nextInt() Javadoc 中。 在嘗試使用下一個令牌之前,您可以使用Scanner.hasNextInt()測試是否存在int

while (true) {
    System.out.println("Please enter the first number:");
    if (input.hasNextInt()) {
        user_number1 = input.nextInt();
        break;
    } else {
        System.out.println("not an int: " + input.nextLine());
    }
}

正如@Elliott Frisch 的回答所述, .nextInt()調用不會返回,直到輸入某種實際數字(或者,如果用戶提交了其他內容,則會發生InputMismatchException

一個簡單的替代方法是……然后不調用.nextInt() 調用.next() ,檢查生成的字符串是否為空,如果不是,則將其轉換為 integer 使用: int userNumber = Integer.parseInt(theStringYouGotFromScannerNext); .

NB1:Java 約定聲明變量名為“userNumber1”,而不是“user_number1”。 在羅馬的時候等等。

NB2:如果您希望每次用戶按下回車鍵時掃描儀都讀取 1 個答案,請調用scanner.useDelimiter("\r?\n"); new Scanner之后立即。 開箱即用,它為每個空格提供 1 個答案,這通常不是您首先想要的。

我希望這是一個簡單的解決方法。 我正在尋找一種方法來檢測用戶在提示輸入 int 值時是否按下了 enter 鍵。 我知道 .isEmpty 不適用於聲明為 int 的值,解決此問題的最佳方法是什么?

System.out.println("Please enter the first number:");
    user_number1 = input.nextInt();
        if (user_number1.isEmpty){

        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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