java - 乘法口诀表中如何设置空格

标签 java

我有一个问题。我有一个以 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/

相关文章:

java - map 的奇怪行为

java - 网络摄像头流的 fps 非常慢

java - 如何从 Hibernate 元数据中获取特定类/实体的所有子类的列表?

java - 配置 logback 以抑制来自包内所有类的日志记录

java - 如何生成包含涵盖代码中每个方法的测试用例列表的报告?

java - 打印值表

java - 将上下文传递给 ListView 的自定义适配器

java - 我如何满足在 java/jsp 中转换集合的警告

java - Spring Security with Java Config - 允许 GET 方法/拒绝 POST 方法(403),没有任何明显的原因

java - 从列表中删除几乎重复项