我有一个输入检查功能,它接受用户的输入。(它应该是小写字母和数字。用于战舰游戏。)该函数需要从输入中删除空格,将其小写,并检查以确保第一个字符是字母,第二个是数字。字母必须从a到g,数字必须从1到7。我写了一些代码,但是由于某种原因,出现错误后,程序结束了。它应该说一条错误消息并等待新的输入。我做错了什么?这是我的代码。
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;
}