0Pricing
Java Academy · 课时

对齐表格

设置数据列的格式

对齐表格 是 CoddyKit 上的免费 Java Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 4 节课。

为什么需要对齐?

打印多行数据时,参差不齐的列很难阅读。对齐后的列可以让数字和标签整齐地上下排列。

printf 的宽度和标志可以让您直接在控制台中构建整洁的表格。

默认右对齐

像 %10s 这样的宽度会预留 10 个字符,并在左侧填充,因此文本会右对齐。

数字的行为也相同,这就是数字列会在右边缘对齐的原因。

public class Main {
    public static void main(String[] args) {
        System.out.printf("[%10s]\n", "hi");
    }
}

使用减号左对齐

添加 - 标志即可在字段内左对齐。%-10s 会将文本放在左侧,并在右侧填充。

左对齐非常适合标签和姓名。

public class Main {
    public static void main(String[] args) {
        System.out.printf("[%-10s]\n", "hi");
    }
}

两列

将左对齐的标签与右对齐的数字组合起来,就能构建一行内容。%-10s%5d 会提供宽度为 10 的姓名字段和宽度为 5 的数字字段。

对每一行重复使用相同的格式,列就会保持对齐。

public class Main {
    public static void main(String[] args) {
        System.out.printf("%-10s%5d\n", "Apples", 3);
        System.out.printf("%-10s%5d\n", "Pears", 12);
    }
}

简单表格

对标题和每一行数据使用相同的格式字符串,可以让所有内容保持对齐。

这里的三行共用一种模式,因此各列始终整齐。

public class Main {
    public static void main(String[] args) {
        String fmt = "%-8s%6d\n";
        System.out.printf(fmt, "Name", 0);
        System.out.printf(fmt, "Ann", 90);
        System.out.printf(fmt, "Bob", 7);
    }
}

对齐小数

对于金额或测量值,可以组合宽度和精度:%8.2f 会将一个保留两位小数的数字右对齐在宽度为 8 个字符的字段中。

各行的小数点会在垂直方向上对齐。

public class Main {
    public static void main(String[] args) {
        System.out.printf("%8.2f\n", 5.5);
        System.out.printf("%8.2f\n", 123.4);
    }
}

带数字的标题

在同一行中混合字符串列和数字列。左侧标签与右对齐的价格放在一起读起来很自然。

这种模式是大多数控制台报告的核心。

public class Main {
    public static void main(String[] args) {
        System.out.printf("%-10s%8.2f\n", "Coffee", 3.5);
        System.out.printf("%-10s%8.2f\n", "Cake", 12.0);
    }
}

选择列宽

选择至少与最长值一样大的宽度,否则文本会溢出列并破坏对齐。

如果值比字段宽,printf 会完整打印它并忽略指定宽度。

public class Main {
    public static void main(String[] args) {
        System.out.printf("[%3s]\n", "toolong");
    }
}

遍历各行

循环配合一个共享的格式字符串,就能轻松生成整张表。

每一轮都会打印一行对齐的内容,因此添加数据不会破坏布局。

public class Main {
    public static void main(String[] args) {
        String[] names = {"Sun", "Mon", "Tue"};
        int[] hrs = {8, 12, 5};
        for (int i = 0; i < names.length; i++) {
            System.out.printf("%-6s%4d\n", names[i], hrs[i]);
        }
    }
}

结合 String.format

如果您需要在打印前得到文本,可以使用 String.format 构建每个对齐的行。

宽度和对齐规则完全相同。

public class Main {
    public static void main(String[] args) {
        String row = String.format("%-8s%5d", "Total", 99);
        System.out.println(row);
    }
}

制表符与宽度

您可以使用 \t 制表符分隔列,但制表位各不相同,较长的值会导致对齐错乱。

像 %-10s 这样的固定宽度可以提供可靠且可预测的列,因此制作表格时应优先使用它们。

快速检查

哪种格式可以在 12 个字符的空间中将姓名左对齐?

回顾

您使用宽度字段、用于左对齐的 - 标志,以及用于整齐显示小数列的 %8.2f,构建了对齐的表格。

借助 printf、String.format 和对齐功能,您可以整齐地格式化任何控制台输出。

常见问题解答

「对齐表格」课时是免费的吗?

是的 — 「对齐表格」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 4 节课。

「对齐表格」这节课中我会学到什么?

设置数据列的格式 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Java Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「对齐表格」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Java Academy 课中编写并运行代码吗?

能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. printf 基础
  2. 数字与小数格式
  3. String.format
  4. 对齐表格
← 返回 Java Academy