【问题标题】:Java | converting 2D int array to 2D char array for println爪哇 |将 2D int 数组转换为 println 的 2D char 数组
【发布时间】:2020-02-27 18:42:19
【问题描述】:

我正在尝试将 2D 整数数组转换为 2D 字符数组。

我用下面的代码做到了这一点

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

请帮帮我?

【问题讨论】:

    标签: java arrays char int ascii


    【解决方案1】:

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

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

    应该是

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

    通过这一改变,我得到了一个像这样的棋盘

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 2022-01-18
      • 2014-08-31
      相关资源
      最近更新 更多