java如何制表
制表方法一:使用 System.out.printf 格式化输出
通过 System.out.printf 结合格式化字符串实现表格对齐。%ns 表示字符串占 n 位,%-ns 表示左对齐,%n.mf 控制浮点数位数。
System.out.printf("%-10s %-10s %-10s\n", "Name", "Age", "Salary");
System.out.printf("%-10s %-10d %-10.2f\n", "Alice", 28, 55000.5);
System.out.printf("%-10s %-10d %-10.2f\n", "Bob", 32, 62000.0);
制表方法二:使用 String.format 构建表格行
先格式化每行内容,再统一输出,适合动态生成表格数据。
String header = String.format("%-15s | %-8s | %-10s", "Product", "Price", "Stock");
String row1 = String.format("%-15s | %-8.2f | %-10d", "Laptop", 999.99, 15);
System.out.println(header);
System.out.println(row1);
制表方法三:使用第三方库(如 Apache Commons CSV)
对于复杂表格,可引入 commons-csv 库导出 CSV 格式表格。
CSVPrinter printer = new CSVPrinter(new FileWriter("data.csv"), CSVFormat.DEFAULT
.withHeader("ID", "Name", "Department"));
printer.printRecord(1, "John", "HR");
printer.close();
制表方法四:HTML 表格生成
若需输出到网页,直接生成 HTML 表格代码。
String htmlTable = "<table border='1'><tr><th>ID</th><th>Name</th></tr>" +
"<tr><td>101</td><td>Jane</td></tr></table>";
制表方法五:使用 StringBuilder 动态拼接
适用于需要动态调整列宽或样式的场景。

StringBuilder table = new StringBuilder();
table.append("+------------+-------+\n");
table.append(String.format("| %-10s | %-5s |\n", "Item", "Qty"));
table.append("+------------+-------+\n");
table.append(String.format("| %-10s | %-5d |\n", "Pencil", 50));
System.out.println(table);
注意事项
- 数字对齐使用
%d(整数)或%f(浮点),字符串用%s。 - 负号
-实现左对齐,默认右对齐。 - 对于中文等宽字符可能需手动调整列宽。






