java中可用string.format()或system.out.printf()通过%-ns(左对齐)和%ns(右对齐)控制字符串宽度实现表格对齐,如%-10s、%3d;中文对齐需使用等宽字体并避免全角空格。

Java 中可以用 String.format() 或 System.out.printf() 配合格式化占位符实现对齐的表格文本,核心是使用宽度控制(如 %-10s 左对齐、%10s 右对齐)和固定列宽。
用 %-Ns 和 %Ns 控制左右对齐
字母 s 表示字符串,N 是最小字段宽度。加负号(-)表示左对齐,不加默认右对齐。
-
%-12s:字符串至少占 12 字符宽,内容靠左,右边补空格 -
%12s:字符串至少占 12 字符宽,内容靠右,左边补空格 - 若字符串本身超过 12 字符,会完整输出,不截断
组合多列生成表格行
把每列按需指定宽度,用空格或制表符分隔,就能拼出对齐效果。例如三列表格(姓名、年龄、城市),可这样写:
String row = String.format("%-10s | %3d | %-15s", "张三", 28, "北京市");
// 输出:张三 | 28 | 北京市
注意:%3d 对数字也适用,保证至少 3 位宽(右对齐),适合对齐整数列。
处理多行数据时建议封装成方法
避免重复写长格式串,可抽成工具方法:
static String tableRow(String name, int age, String city) {
return String.format("%-10s | %3d | %-15s", name, age, city);
}
// 使用
System.out.println(tableRow("李四", 35, "杭州市"));
System.out.println(tableRow("王五", 22, "广州市"));
// 输出自动对齐
补充:对齐中文要注意字体等宽问题
控制台显示中文时,如果字体不是等宽(如宋体、微软雅黑默认不是),即使空格数量正确,视觉上仍可能错位。建议:
- 开发调试时用等宽字体(如 Consolas、JetBrains Mono、Fira Code)
- 避免混用中英文全角/半角空格
- 如需强一致性,可考虑用
StringUtils.rightPad()/leftPad()(Apache Commons Lang)手动补空格
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











