簡體   English   中英

Java HW,使用字符串/字符打印出一個整數的多維數組

[英]Java HW, Printing out a multidimensional array of Ints, with Strings/characters

我做了一個N Queens java項目,要求我打印出一個多維數組,顯示可以放置Queens的位置。 我的數組是整數。 它在適當的位置打印出1和0。 我想知道是否有一種方法可以在不將數組更改為String的情況下,將皇后區的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
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(" ");
      }
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM