You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何格式化两个数组的输出 实现等间距对齐的控制台表格

解决方案

你当前用固定空格拼接字符串的方式无法对齐,核心原因是不同商品名称的长度不一致,固定空格数没法适配长度差,直接用Java的格式化输出能力就能快速实现等间距对齐的表格,不需要手动计算每个位置要补多少空格。

实现思路

  • 给每一列预设固定的显示宽度,所有行的同一列都遵守这个宽度规则,长度不足的位置自动补空格填充
  • 用System.out.printf()方法配合格式化占位符实现宽度控制,表头和内容行使用完全一致的宽度规则,避免表头和内容错位
  • 常用占位符规则:
    • %-Nd:整数类型左对齐,占N个字符宽度
    • %-Ns:字符串类型左对齐,占N个字符宽度
    • 去掉负号即为右对齐显示,可根据自己的排版需求调整
    • 占位符末尾的%n是跨平台兼容的换行符

修正后完整代码

public class jh {
    public static void main(String[] args) {
        int[] quantity = {31, 10, 30, 19, 25, 80};
        String[] product = {"Milk", "Eggs", "Cereal", "Apples", "Cheese","Chicken"};

        // 输出表头,和内容行使用相同的列宽配置
        System.out.printf("%-6s%-12s%s%n", "Index", "Product", "Quantity");
        // 循环条件用数组长度判断,避免硬编码数字后续改数组时出现越界
        for (int i = 0; i < product.length; i++) {
            System.out.printf("%-6d%-12s%d%n", i+1, product[i], quantity[i]);
        }
    }
}

调整说明

  • 列宽可以根据自己的需求修改占位符里的数字,比如觉得商品列太窄,就把%-12s改成%-15s,列间距会同步均匀变宽
  • 运行后输出的每一列都会严格对齐,不会因为内容长度变化出现错位

内容的提问来源于stack exchange,提问作者Newbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.22 16:15:00