0

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

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

我还尝试将 Int 数组复制到 String 数组中,但 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
4

3 回答 3

2
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”打印出来......然后它会根据需要显示在结果中。

于 2014-04-06T00:45:30.497 回答
1

利用

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

代替

System.out.print(a[i][j]);
于 2014-04-06T00:46:48.510 回答
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');
      }else{
           System.out.print(" ");
      }
   }
}
于 2014-04-06T00:47:01.857 回答