Java乘法表矩阵如何按指定格式对齐输出?
解决Java乘法表对齐输出问题
核心问题分析
你当前输出带逗号、排版混乱的原因,大概率是直接调用了Arrays.toString()打印数组——这个方法会自动给元素添加逗号和方括号;同时没有对数字做宽度格式化,导致一位数和两位数的数字(比如1和10)无法对齐。
两步解决方法
1. 替换数组打印逻辑
放弃Arrays.toString(),改为逐个遍历数组元素,手动控制每个元素的输出格式。
2. 用格式化输出实现对齐
使用System.out.printf(),通过格式化字符串指定每个数字的显示宽度,让不同位数的数字自动补空格对齐。
修正后的代码示例
public class MultiplicationTable { public static void main(String[] args) { int size = 9; int[][] table = new int[size][size]; // 生成乘法表数据 for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { table[i][j] = (i + 1) * (j + 1); } } // 对齐输出乘法表 for (int[] row : table) { for (int num : row) { // %3d 表示每个数字占3个字符宽度,默认右对齐,不足补空格 System.out.printf("%3d", num); } // 每行结束后换行 System.out.println(); } } }
最终输出效果
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
可选调整
- 若需要左对齐,把格式化符改成
%-3d即可; - 如果是更大的乘法表(比如12×12),可以把宽度调整为
%4d,适配最大数字144的显示需求。
内容的提问来源于stack exchange,提问作者Alex2000
相关产品推荐
相关产品推荐

