Java 从二维字符数组访问特定元素

Java 从二维字符数组访问特定元素,java,arrays,exception,Java,Arrays,Exception,我正在研究一种方法,它将一个二维数组、一个字符和2个整数作为输入,给出字符在数组中的位置。每当我试图访问的位置的数组已满,或者每当我试图访问超出边界的位置时,我都必须抛出异常。Java给了我一个关于如何编写代码的奇怪错误。我不知道如何从二维数组中访问某个元素。我附上了我的代码截图和我得到的例外情况。 提前谢谢你 最好使用单空间格式将代码和异常直接复制粘贴到问题正文中,以便于阅读 charAt函数应在String对象上调用。char[][]数组不是字符串对象,因此代码无法成功编译。根据您对Java

我正在研究一种方法,它将一个二维数组、一个字符和2个整数作为输入,给出字符在数组中的位置。每当我试图访问的位置的数组已满,或者每当我试图访问超出边界的位置时,我都必须抛出异常。Java给了我一个关于如何编写代码的奇怪错误。我不知道如何从二维数组中访问某个元素。我附上了我的代码截图和我得到的例外情况。
提前谢谢你

最好使用
单空间格式将代码和异常直接复制粘贴到问题正文中,以便于阅读

charAt
函数应在
String
对象上调用。
char[][]
数组不是字符串对象,因此代码无法成功编译。根据您对Java的熟悉程度,您可能希望了解类对象(例如
字符串的实例
类)和基元类型数组(例如
字符
)之间的区别

解释阵列的教程页面:

教程页解释课程:


如果您试图从二维
char[]]
数组访问
char
,请将其视为访问数组数组
char[x]
将为您获取包含所需元素的“行”,而
char[x][y]
将为您获取该元素“行”中的特定元素。

由于您的数组是char数组,您无需放置
board.charAt[x][y]
只要
board[x][y]
。另外,始终执行
finally
位,因此如果为
x
y
输入非法值,仍然会出现错误。此外,您没有将变量
c
引用的字符写入数组,而是将字符(字母)c写入电路板。 您可以将第二个
if
语句与
else
一起使用,将字符放入数组中,并完全避免使用
finally

if(board[x][y] != ' ') throw new IllegalArgumentException("Your message");
else board[x][y] = c;
如果你得到了第一个
,那么应该放在里面。

另一种方法是在
try
之后使用
catch
,因为尝试访问数组之外的元素将抛出
异常。使用选项更正您的帖子。无论如何,当您调用
borad.charAt[x][y]
时,您希望发生什么?为什么不在[x][y]
板上写几行代码呢?另外,你不应该尝试运行甚至不编译的代码。