比较二维数组中行或列的元素(Java)
我有一个String[][] field
。例如,它可能看起来像:
[xy] [xy] [xy] [xy] [xy]
[xy] [xy] [xy] [xy] [xy]
[xy] [xy] [xy] [xy] [xy]
[xy] [xy] [xy] [xy] [xy]
[xy] [xy] [xy] [xy] [xy]
行数和列数相等,但每次的行数可能不同。我需要检查整行或整列元素的值是否相等。
我为3x3field
编写了一些错误代码来检查行,如下所示:
public boolean checkHorizontal(String[][] field) {
boolean value = false;
int x = 0;
for (int i = 0; i < field.length; i++) {
if (field[i][x].equals(field[i][x + 1]) &&
field[i][x + 1].equals(field[i][x + 2]) &&
!field[i][x].equals("[something]")) {
value = true;
}
}
return value;
}
但这并不是检查行的通用方法,因为我们可能有不同大小的矩阵(并且需要添加x + 3
、x + 4
、x + 5
,等等)
是否有任何有效的方法来比较2D数组的整行/整列强>
# 1 楼答案
@quidproquo的答案实际上是检查所有字段是否相等,但很容易将解决方案调整为一行或一列:
# 2 楼答案
要检查所有行,请执行以下操作: