如何在Java的toString方法中实现内容对齐排版
解决Java toString输出对齐问题
要实现横向对齐的表格式输出,你可以用Java的String.format()方法,通过固定宽度的占位符控制每列宽度,确保内容对齐。
修改后的toString方法代码
public String toString() { // 定义表头,每个字段设置固定宽度(可按需调整) String header = String.format("%-10s %-8s %-15s %-12s", "name", "IC NO", "taxableincome", "taxableAmount"); // 对应内容行,用相同宽度占位符对齐 String content = String.format("%-10s %-8s %-15.2f %-12.2f", person, icNo, taxableIncome, taxAmount); // 拼接表头和内容,换行分隔 return header + "\n" + content; }
代码说明
%-10s:-表示左对齐,10为字段占的字符宽度,s对应字符串类型;%-15.2f:针对数值类型,15是总宽度,.2f保留两位小数,保证数值对齐;- 可根据实际字段长度调整占位符宽度,让列对齐更美观。
输出效果示例
name IC NO taxableincome taxableAmount Poon 000912 85000.00 17000.00
如果需要保留STATUS字段,可在表头和内容中添加对应占位符:
public String toString() { String header = String.format("%-10s %-8s %-15s %-6s %-12s", "name", "IC NO", "taxableincome", "status", "taxableAmount"); String content = String.format("%-10s %-8s %-15.2f %-6s %-12.2f", person, icNo, taxableIncome, status, taxAmount); return header + "\n" + content; }
对应输出:
name IC NO taxableincome status taxableAmount Poon 000912 85000.00 S 17000.00
内容的提问来源于stack exchange,提问作者Steve Poon
相关产品推荐
相关产品推荐

