我試圖從控制檯輸入使用in.nextLine()
解析字符並從那裏取charAt(0)
。我的問題是在要求用戶輸入一個字符串來執行in.nextLine()
之後,它跳過輸入並由於嘗試獲取空字符串的第一個字符而產生錯誤。Java:控制檯跳過輸入
System.out.print("Select an operator (+, -, *, /), 'c' or 'C' to clear, or 'q' to quit: ");
String temp = in.nextLine();
char tempOperator = temp.charAt(0);
誤差
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
全程序可here
一般性意見和建議,隨時歡迎。 在此先感謝。
我希望我有15個代表,所以我可以向你投票。感謝您解釋,而不僅僅是提供解決方案。你介意解釋爲什麼while循環會比使用額外的in.nextLine()更好嗎? – zerodeficit
爲什麼你需要while循環? –
@zerodeficit:我更喜歡while循環,因爲用戶在輸入第一個輸入後可能會多次按下返回鍵。該循環像以前一樣保護您免受異常,直到程序沒有收到真正的輸入。 –