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

Java printf左对齐格式化:带描述语句的多列打印需求

解决方案

要实现体积和密度数值列的左对齐,你可以通过给描述文本设置固定宽度的左对齐格式来实现,无需额外API,仅用printf即可完成。核心思路是给每行的[形状] volume:和[形状] density:部分分配固定的字符宽度,并指定左对齐(-标志),这样后续的数值就会自动对齐到同一列。

修改后的代码

System.out.printf("%-18s %.2f cu ft   %-22s %.2f lbs. / cu ft\n\n", 
                  "Box volume:", userBox.calculateVolume(), 
                  "Box density:", userBox.calculateDensity());        
System.out.printf("%-18s %.2f cu ft   %-22s %.2f lbs. / cu ft\n\n", 
                  "Cone volume:", userCone.calculateVolume(), 
                  "Cone density:", userCone.calculateDensity());        
System.out.printf("%-18s %.2f cu ft   %-22s %.2f lbs. / cu ft\n\n", 
                  "Cylinder volume:", userCylinder.calculateVolume(), 
                  "Cylinder density:", userCylinder.calculateDensity());        
System.out.printf("%-18s %.2f cu ft   %-22s %.2f lbs. / cu ft\n\n", 
                  "Sphere volume:", userSphere.calculateVolume(), 
                  "Sphere density:", userSphere.calculateDensity());        

格式说明

  • %-18s:左对齐(-)的字符串格式,占用18个字符宽度。无论[形状] volume:的长度是多少,都会被填充到18位,确保后续的体积数值从同一位置开始。
  • %-22s:同理,给[形状] density:分配22个字符宽度的左对齐格式,保证密度数值列对齐。
  • 中间的空格是为了两列之间保留合适的间距,可根据实际显示效果微调宽度数值(比如18、22)。

这样修改后,所有体积数值会左对齐在同一列,密度数值也会整齐排列,完全符合你不能改表头的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:12:37