Java HW,打印出带有字符串/字符的整数的多维数组



我做了一个N queens java项目,要求我打印出一个多维数组,显示我可以在哪里放置queens。我的数组是整数。它在可观的位置打印出 1 和 0。我想知道是否有办法可以打印出一个 Q 代替 1 和一个空格代替 0,而无需将我的数组更改为 String 类型。我回去把我的数组更改为字符串类型,我得到了空值来代替一些 0。

我尝试将 int 转换为 ASCII 字符(81 将是 Q)。

我还尝试将 Int 数组复制到字符串数组中,但 java 不允许这样做。有什么想法吗?

    public void print(){
for(int i = 0; i < a.length; i++)
{
    for(int j = 0; j < a[i].length; j++)
    {
        if (a[i][j]==1){
            a[i][j]=((char)81);
        }
        System.out.print(a[i][j]);
        if(j < a[i].length - 1) System.out.print(" ");
    }
    System.out.println();
}

}

Solution :
0 0 0 0 0 81 0 0
81 0 0 0 0 0 0 0
0 0 0 0 0 0 81 0
0 0 0 81 0 0 0 0
0 81 0 0 0 0 0 0
0 0 0 0 81 0 0 0
0 0 0 0 0 0 0 81
0 0 81 0 0 0 0 0
for(int i = 0; i < a.length; i++)
{
    for(int j = 0; j < a[i].length; j++)
    {
        if (a[i][j]==1){
            System.out.print("Q");
            if(j < a[i].length - 1) System.out.print(" ");
        } else{
            System.out.print(a[i][j]);
            if(j < a[i].length - 1) System.out.print(" ");
        }
    }
    System.out.println();
}

除非你需要一个存储在数组中的"Q",否则你不能在需要时打印出"Q"吗?然后它将根据需要显示在结果中。

使用

System.out.print((char)a[i][j]);

而不是

System.out.print(a[i][j]);
for(int i = 0; i < a.length; i++)
{
   for(int j = 0; j < a[i].length; j++)
   {            
      if (a[i][j]==1){
           System.out.print('Q');
      }else{
           System.out.print(" ");
      }
   }
}

相关内容

  • 没有找到相关文章

最新更新