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