我有一个问题。我有一个以 4x4 作为乘法表的二维数组,我必须在列之间留出一个空间,使得 m 和 m 之间的间隙等于给定列中最后一个数字的长度 +1。
在我发送的代码中,注释给出了我尝试解决它但没有成功的方法
https://gist.github.com/Isbena-4/7e3a628c55d6d9d26f428b9e268e132e
看起来一定是这样的
1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16
最佳答案
您可以迭代数组并找到每列中数字最多的元素。比使用%<LEN>d
格式化字符串以正确的长度显示它:
int[][] input = {
{1, 2, 3, 4},
{2, 4, -6666, 8},
{3, 6, 9, 12},
{4, 8, 12, 16}
};
int n = input.length;
int[] colLengths = new int[n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
int l = String.valueOf(input[j][i]).length();
if (l > colLengths[i]) {
colLengths[i] = l;
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.printf("%" + colLengths[j] + "d ", input[i][j]);
}
System.out.println();
}
将打印格式良好的网格,同时处理负数:
1 2 3 4
2 4 -6666 8
3 6 9 12
4 8 12 16
关于java - 乘法口诀表中如何设置空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55424818/