我正在嘗試完成一個專案,該專案采用以下格式的日期:Month Day, Year示例:December 1, 1990。在獲取此日期后,我嘗試以Month/Day/Year格式輸出它。我期望使用的方法是substring。我在處理錯誤輸入時遇到了錯誤問題。例如,如果沒有逗號,則會發生錯誤并終止回圈。我想知道是否有辦法檢查每個值是否存在錯誤,然后在發現錯誤時繼續回圈。到目前為止,這是我的代碼:
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
// Flag to indicate next iteration
String lineString = "";
String month;
int year;
int day;
char comma;
lineString = scnr.nextLine();
while(!lineString.equals(-1)) {
month = lineString.substring(0, lineString.indexOf(" "));
day = Integer.parseInt(lineString.substring(lineString.indexOf(" ") 1, lineString.indexOf(',') ));
comma = lineString.charAt(lineString.indexOf(','));
year = Integer.parseInt(lineString.substring(lineString.length()-4));
System.out.println(month);
System.out.println(day);
System.out.println(comma);
System.out.println(year);
lineString = scnr.nextLine();
}
uj5u.com熱心網友回復:
您可以將代碼包裝在 try-catch 塊中的 while 回圈中。它會在不終止程式的情況下捕獲您的例外。
uj5u.com熱心網友回復:
一種方法是捕獲例外。這是處理潛在例外的方法parseInt;例如,當該值不是有效整數時。
另一種方法是使代碼更加健壯,以便根本不會拋出例外。例如:
檢查
indexOf呼叫的結果以確保它們不是 -1 ...這意味著“未找到”,以及lineString.length() - 4考慮使用
String.trim()來擺脫額外的空白。
我認為您需要同時使用這兩種方法。關鍵是要考慮用戶可能犯的所有錯誤并允許它們發生。撰寫自己的測驗也是一個好主意。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/374421.html
上一篇:如何決議Netlogo中的字串?
