gpt4 book ai didi

java - 使用字符串输入中的字符填充二维数组

转载 作者:行者123 更新时间:2023-12-01 18:16:36 27 4
gpt4 key购买 nike

我正在制作一个基本的 Tic Tac Toe 游戏,以字符串(即 a2)的形式接受玩家输入。第一个字符根据字母被转换为名为 row 的 int ,第二个字符也被转换为 col (对于数组 grid[row][col] )。我有一段代码,如果第一个字符不是 a、b 或 c,并且第二个字符不是 1、2 或 3,则会引发自定义异常:

if(input == null) {
throw new NullInputException();
}
else if(input.length() != 2) {
throw new InvalidInputException();
}
else if(!(input.substring(0,1).equalsIgnoreCase("a") &&
input.substring(0,1).equalsIgnoreCase("b") &&
input.substring(0,1).equalsIgnoreCase("c") ||
input.substring(1).equals("1") &&
input.substring(1).equals("2") &&
input.substring(1).equals("3"))) {
throw new InvalidInputException();
}

问题是,即使输入有效,这段代码也会抛出错误,我不知道为什么。我尝试过使用 .charAt() 而不是 .substring(),并且弄乱了我的条件语句。我的问题是:如何修复此问题以使其接受有效输入?

其他没有帮助的问题: fill two dimensional array with parts of a string ; fill a 2d array with chars of 2 string

最佳答案

有时最好编写一系列更简单的测试,这些测试更易于阅读和验证

row = input.substring(0,1).toUpperCase();
col = input.substring(1);
boolean validRow = (row.equals("A") ||
row.equals("B") ||
row.equals("C"));
boolean validCol =
(col.equals("1") ||
col.equals("2") ||
col.equals("3"));

if(!(validRow && validCol)) {

关于java - 使用字符串输入中的字符填充二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29148992/

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