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
请帮帮我好吗?
您的 int
到 char
的转换不正确,应该只需要转换。这个
arr[i][j] = Integer.toString(boardArray[i][j]).charAt(0);
应该是
arr[i][j] = (char) boardArray[i][j];
有了这个改变,我得到了一个像
这样的棋盘
♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟
♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙
♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖
我正在尝试将二维整数数组转换为二维字符数组。
我用下面的代码走到了这一步
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
请帮帮我好吗?
您的 int
到 char
的转换不正确,应该只需要转换。这个
arr[i][j] = Integer.toString(boardArray[i][j]).charAt(0);
应该是
arr[i][j] = (char) boardArray[i][j];
有了这个改变,我得到了一个像
这样的棋盘♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟
♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙
♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖