Java |将 2D int 数组转换为 2D char 数组以进行 println

Java | converting 2D int array to 2D char array for println

我正在尝试将二维整数数组转换为二维字符数组。

我用下面的代码走到了这一步

int[][] boardArray = {
  {0x265C, 0x265E, 0x265D, 0x265B, 0x265A, 0x265D, 0x265E, 0x265C},
  {0x265F, 0x265F, 0x265F, 0x265F, 0x265F, 0x265F, 0x265F, 0x265F},
  {0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0},
  {0x2659, 0x2659, 0x2659, 0x2659, 0x2659, 0x2659, 0x2659, 0x2659},
  {0x2656, 0x2658, 0x2657, 0x2655, 0x2654, 0x2657, 0x2658, 0x2656}};

char[][] arr = new char[boardArray.length][];
for(int i = 0; i < boardArray.length; i++) {
arr[i] = new char[boardArray[i].length];
  for(int j = 0; j < boardArray[i].length; j++){
    arr[i][j] = Integer.toString(boardArray[i][j]).charAt(0);
  }
}

System.out.println(Arrays.deepToString(arr)
  .replaceAll("\[|,", "")
  .replace("] ", ""+System.lineSeparator())
  .replace("]]", ""));

限制:

I cant change int[][] boardArray to char][] boardArray


这是我得到的: https://i.stack.imgur.com/wHb6L.jpg

这是我应该得到的: https://i.stack.imgur.com/QXmWg.jpg

请帮帮我好吗?

您的 intchar 的转换不正确,应该只需要转换。这个

arr[i][j] = Integer.toString(boardArray[i][j]).charAt(0);

应该是

arr[i][j] = (char) boardArray[i][j];

有了这个改变,我得到了一个像

这样的棋盘
♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟
       
       
       
       
♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙
♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖