Java打印2D数组,就像带边框的表格一样
所以我需要像表格一样打印一个2D数组,而且我有正确的数字,我只是不能理解打印表格边框的概念
这是我的
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|
---------------------
我不需要任何角边框(例如a+),只需要垂直线(|)和虚线(-)
这怎么可能呢
我现在打印数组的代码如下:
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();
}
# 1 楼答案
这不是一个简单的任务,实际上整数可能超过4位。您可能首先要确定最长的一个的长度,并使用它来设置宽度的格式
假设长度为4,那么你可以尝试以下方法:
要理解
%4d
,请看一下format string syntax# 2 楼答案
我想出了一个简单得多的解决方案,但似乎能实现你的目标
# 3 楼答案
只是一点数学和字符串操作:
在http://ideone.com/PnfqS0自己玩代码