【问题标题】:reversing array data from * to empty and empty to *将数组数据从 * 反转为空并将空反转为 *
【发布时间】:2026-01-23 01:50:01
【问题描述】:

所以我创建了一个称为像素的二维数组。我已经编写了一种方法来将数组翻转到垂直轴上并将数组旋转一次 90 度。我知道这很简单,而且我可能忽略了一些简单的事情,但是对于我的一生,我无法弄清楚如何反转数组中的数据。该数组保存空白值和 * 值以打印图片。我需要创建一个方法,将所有 * 反转为空,并将所有空格反转为 *。

是的,这是作业(实际上是实验室),如果您向我解释该方法将如何工作,我相信我可以自己编写。只是在这里寻找一些指示。谢谢。

编辑:

我的代码不起作用,操作数不匹配错误 char[][] 和 char

   public void invert ( ){

    if (pixels == '*'){

        pixels = ' ';
    }
    else{
        pixels = '*';
    }


     } 

创建数组的代码:

               private char[][] pixels = 
    {  { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
        { ' ', '*', '*', '*', '*', '*', ' ', ' ' },
        { ' ', '*', ' ', ' ', ' ', ' ', ' ', ' ' },
        { ' ', '*', ' ', ' ', ' ', ' ', '*', ' ' },
        { ' ', '*', '*', '*', ' ', ' ', ' ', ' ' },
        { ' ', '*', ' ', ' ', ' ', '*', ' ', ' ' },
        { ' ', '*', ' ', ' ', ' ', ' ', ' ', '*' },
        { ' ', '*', '*', '*', '*', '*', ' ', ' ' }, 
        { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } };

【问题讨论】:

  • if (pixel == '*') pixel = ' '; else pixel = '*'; 有什么问题??
  • 我将数组创建为私有 char[][] 像素,因此 if 语句抛出了不兼容的操作数类型 char[][] 和 char。可能有办法解决它,但我正在画一个空白。
  • 请显示一些代码。

标签: java arrays multidimensional-array 2d


【解决方案1】:

你必须遍历矩阵,而不是简单地在条件子句中使用它。在我看来pixels 的类型是char[][]

您需要对其进行迭代,并对每个元素执行以下操作:

if (pixels[i][j] == '*'){
    pixels[i][j] = ' ';
}
else{
    pixels[i][j] = '*';
}

,其中ij 是当前坐标。

【讨论】:

  • 谢谢,我写了一个嵌套的for循环,例如对于 int i,然后对于 int j。似乎工作正常。