【问题标题】:Java - How can one replace a variable in a 2D array?Java - 如何替换二维数组中的变量?
【发布时间】:2021-08-31 20:09:10
【问题描述】:

问题:

如何替换二维数组中的变量

重申:

在这种特定情况下,我们有一个二维数组(名为 board),每个元素都分配给字母表中的一个字母,从 a - i 开始。

    int[][] board = new int [3 /*row*/][3 /*column*/];
    int a = board[0][0];
    int b = board[0][1];
    int c = board[0][2];
    int d = board[1][0];
    int e = board[1][1];
    int f = board[1][2];
    int g = board[2][0];
    int h = board[2][1];
    int i = board[2][2];

然后,我们使用“if-statements”检查数组中是否有重复。

if (a == b || a == c || a == d || a == e || a == f || a == g || a == h || a == i)

if (b == c || b == d || b == e || b == f || b == g || b == h || b == i)

if (c == d || c == e || c == f || c == g || c == h || c == i)

if (d == e || d == f || d == g || d == h || d == i)

if (e == f || e == g || e == h || e == i)

if (f == g || f == h || f == i)

if (g == h || g == i)

if (h == i)

我知道这是用 if 语句解决这个问题的一种非常缓慢且低效的方法。我将在 StackOverflow 中提出另一个关于将这些 if 语句简化为 for 循环的问题。

现在,在我们完成这些语句之后,让我们使用这行特定的代码:

    if (a == b || a == c || a == d || a == e || a == f || a == g || a == h || a == i)

就这个例子来说,让我们说“a”的值等于“b”的值。

现在,我们想用“a”替换二维数组中“b”的所有值。

这意味着我们的最终结果应该不再包含任何变量“b”。

尝试:

如果你能理解的话,我通常会把我的尝试放在我的帖子上。但是,在这种情况下,我不理解这个概念,也无法尝试自己解决。我只记得在JAVA中可能有一个名为“replace”的函数,我们可以使用它来解决问题。我的尝试可以被认为是写出 if 语句。提前谢谢你。

【问题讨论】:

  • 你为什么要把b换成a,因为它们已经一样了?
  • 帮我解决问题。

标签: java arrays variables multidimensional-array replace


【解决方案1】:

如果我正确理解您的问题,我可能会这样做:

int[][] board = new int [3 /*row*/][3 /*column*/];
int a = board[0][0];
int b = board[0][1];

// ...

for(int i = 0; i < board.length; i++) {
   for (int j = 0; j < board[i].length; j++) {
      if (board[i][j] == b) {
         board[i][j] = a;
      }
   }
}

基本上,这会遍历二维数组的所有值,当它找到一个等于b 的值时,它会将那个值替换为a 的值。

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    相关资源
    最近更新 更多