1

可能重复:
Java printf 使用可变字段大小?

我有一段时间没有使用 Java,所以我正在寻找一种在格式化/打印输出时在/中指定可变宽度的方法。我的示例显示了整数的使用,但我当然希望它也适用于其他类型。formatprintf

例如,类似的东西

int val = 8;
int wid = 5;

System.out.printf("%"*d\n", wid, val);  

我可以使用这种变通方法,这很丑陋:

System.out.printf("%"+wid+"d\n", val);

变量字段宽度说明符是否*已从 Java 中删除?这个 old'ish page,第 1.3.1 节,显示了使用(就像它会在 C 中使用一样),但我无法让它工作,导致:

java.util.UnknownFormatConversionException: Conversion = '*'

我也找不到更多最近的参考资料,这确实有效。

除了我上面的解决方法之外,还有更简单的方法吗?

在发布之前我确实环顾四周,遇到了这个大约 2 岁的 SO 问题Java printf using variable field size? 但这是最后的决定吗?

4

1 回答 1

0

格式说明符的一般语法是

%[参数][标志][宽度][.precision][长度]类型

除了 printf,您还可以使用

String.format("%"+wid+"d",val);

是的,如果您使用 Java 格式化程序,这些是唯一的方法。

于 2012-10-18T16:04:02.780 回答