Java |преобразование 2D int массива в 2D char массив для печати - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь преобразовать двумерный массив целых чисел в двумерный массив символов.

Я получил это с кодом ниже

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("]]", ""));

Питание:

Я не могу изменить int [] [] boardArray на char] [] boardArray


вот что я получаю: https://i.stack.imgur.com/wHb6L.jpg

вот что я должен получить: https://i.stack.imgur.com/QXmWg.jpg

помогите мне, пожалуйста?

1 Ответ

0 голосов
/ 01 ноября 2019

Ваше преобразование int в char неверно и требует только приведения. Это

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

должно быть

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

С этим одним изменением я получаю шахматную доску типа

♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟
       
       
       
       
♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙
♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖
...