java的printf支持通过字符串拼接将变量传入格式说明符,实现动态指定数字或字符串的对齐宽度,无需硬编码固定数值。
在Java中,System.out.printf() 的格式字符串(如 “%10d”)本质上是普通字符串,其宽度值(如 10)并非语法关键字,而是格式说明符的一部分。因此,完全可以通过字符串拼接的方式,将运行时计算出的宽度变量嵌入到格式串中,从而实现动态宽度控制。
✅ 正确用法:字符串拼接构建动态格式串
int width = 8;
int value = 42;
System.out.printf("%" + width + "d", value);
// 输出: 42(共8字符宽,左补6个空格)
该写法等价于手动写出 “%8d”,但具备灵活性——width 可来自用户输入、配置、循环索引或任意计算逻辑。