gpt4 book ai didi

java - java中的输入检查方法

转载 作者:行者123 更新时间:2023-12-01 04:35:50 25 4
gpt4 key购买 nike

我有一个输入检查函数,可以接受用户的输入。 (它应该是小写字母和数字。这是用于战舰游戏的。)该函数需要从输入中删除空格,将其小写,并检查以确保第一个字符是字母,第二个字符是数字。字母必须是从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;
}

最佳答案

下面的代码块将抛出空指针异常。如果第一个字符无效并且执行了第一个 if,则 inputline 将设置为 null。然后,在下一个 if 中,您在 inputline(现在为 null)上调用一个方法,并引发异常。不要执行 inputline=null;,而是将其更改为 return null; 并立即返回 null。

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)))

关于java - java中的输入检查方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17374362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com