我有一個輸入檢查函數,它接受來自用戶的輸入。 (它應該是小寫字母和數字,用於戰艦遊戲)。該功能需要從輸入中刪除空格,小寫字母,並檢查以確保第一個字符是字母,第二個字符是數字。字母必須是從a到g,數字從1到7.我寫了一些代碼,但由於某種原因出錯後,程序結束。它應該說錯誤消息並等待新的輸入。我做錯了什麼?這是我的代碼。java中的輸入檢查方法
inputLine = is.readLine();
inputLine = inputLine.replaceAll("\\s", "");
inputLine = inputLine.toLowerCase();
if (inputLine.length() == 0)
inputLine = null;
else if (inputLine.length() > 2) {
System.out.println("Invalid input, please enter column (a-g) and row (1-7)");
inputLine = null;
} else {
if (Character.isLetter(inputLine.charAt(0))) {
char i = inputLine.charAt(0);
if (i < 'a' || i > 'g') {
System.out.println("Invalid input, please enter a letter a to g");
inputLine = null;
}
int row = i - 'a';
if (Character.isDigit(inputLine.charAt(1))) {
int k = (inputLine.charAt(1) - '0');
if (k < 1 || k > 7) {
System.out.println("Invalid input, please enter a digit 1 to 7");
inputLine = null;
}
}
}
}
} catch (IOException e) {
System.out.println("IOException: " + e);
}
return inputLine;
}
請正確縮進此代碼。 –
你說你想在發生錯誤之後等待新的輸入,在你的程序中代碼是指向那個需求的?也許一個循環返回到請求新輸入的起點。 – Sello
我該怎麼做?有什麼建議? – mer063