gpt4 book ai didi

Java - 像表格一样打印二维数组 - 带边框

转载 作者:行者123 更新时间:2023-12-02 05:20:47 24 4
gpt4 key购买 nike

所以我需要打印一个像表格一样的二维数组,而且我的数字是正确的,我只是无法理解打印表格边框的概念。

这就是我所拥有的

0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

我希望这样,每个框中包含四个字符空间(这样它可以容纳 1000 的数字)并且数字右对齐。

---------------------
| 0| 0| 0| 0|
---------------------
| 0| 0| 0| 0|
---------------------
| 0| 0| 0| 0|
---------------------
| 0| 0| 0| 0|
---------------------

我不需要任何角边框(例如 +),只需要垂直线 (|) 和破折号 (-)

这怎么可能?

我现在打印数组的代码是这样的:

int [][] gameboard = new int[4][4];
for(int i = 0; i < gameboard.length; i++)
{
for(int j = 0; j < gameboard[i].length; j++)
{
System.out.print(gameboard[i][j]);
if(j < gameboard[i].length - 1) System.out.print(" ");
}
System.out.println();
}

最佳答案

只需一点数学和字符串操作:

int rows=4;
int cols=4;
int [][] gameboard = new int[rows][cols];
int cellSize = 4;
int rowLength = cols * cellSize + cols + 1;
final char[] array = new char[rowLength];
Arrays.fill(array, '-');
String rowDivider = new String(array);
for(int i = 0; i < gameboard.length; i++)
{
System.out.println(rowDivider);
for(int j = 0; j < gameboard[i].length; j++)
{
System.out.printf("|%"+cellSize+"d",gameboard[i][j]);
if(j == (gameboard[i].length - 1)) System.out.println("|");
}
}
System.out.println(rowDivider);

亲自尝试代码 http://ideone.com/PnfqS0

关于Java - 像表格一样打印二维数组 - 带边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26537117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com