我應該編寫一些東西,允許用戶輸入應該是一系列整數,用空格分隔的輸入,而不是非數字/非空格字符。從一個輸入解析多個整數
這樣做的最好方法是什麼?我是否將整個字符串以某種方式分解爲一個數組並檢查每個字符串?
我應該編寫一些東西,允許用戶輸入應該是一系列整數,用空格分隔的輸入,而不是非數字/非空格字符。從一個輸入解析多個整數
這樣做的最好方法是什麼?我是否將整個字符串以某種方式分解爲一個數組並檢查每個字符串?
您可能希望使用Scanner
,特別是Scanner.nextInt()
和Scanner.hasNextInt()
。
查看文檔,但使用掃描儀可以很容易地從輸入中獲得標記化整數,並將它解析爲int
s!
這是我用過
int getInputInt(){
final Scanner keyboard = new Scanner(System.in);
int inputInt = 0;
boolean continueLoop = true;
while(continueLoop = true) {
try{
inputInt= keyboard.nextInt();
continueLoop = false;
break;
} catch (InputMismatchException e) {
keyboard.nextLine();
out.println("That key is not an integer. Try again");
}
}
return inputInt;
}
你不應該提供家庭作業標記問題的答案,正如標籤維基提到的那樣:「這可以讓潛在的答覆者知道他們應該指導學生解決問題,而不應該簡單地顯示完整的答案。」 – amit 2012-04-13 17:30:00
請記住,但這不是一個完整的答案無論如何..我不相信它會工作完美,考慮到用戶必須輸入一個多個整數字符串 – squarephoenix 2012-04-13 17:34:52
給學生代碼不會幫助他們學習任何東西@techjunkie .css – 2012-04-13 17:35:16
的代碼片段中有錯誤。
1]雖然在java中將不允許初始化。
2]該方法應該返回一個int數組。因此,你做一個hasNextInt並將nextInt存儲在數組中。
這功課嗎?我認爲你的第一個想法非常好,所以試試看,告訴我們你遇到了什麼(最終)問題。 – 2012-04-13 17:25:30
It it now ...:p – 2012-04-13 17:26:09
您的想法很紮實,您可以在String javadocs中查看如何執行此操作的一些想法。 – smcg 2012-04-13 17:28:07