Java中printf / format的变量/参数化宽度(使用*或其他?)

时间:2012-10-18 14:59:50

标签: java printf string-formatting

  

可能重复:
  Java printf using variable field size?

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

,例如,

int val = 8;
int wid = 5;

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

我可以使用这种解决方法,这很难看:

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

是否从Java中删除了*变量字段宽度说明符?这老了 page,第1.3.1节, 显示使用(就像它将在C中使用),但我无法得到它 工作,导致:

java.util.UnknownFormatConversionException: Conversion = '*'

我也未能找到更多近期的参考资料 确实有效。

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

我在发布之前确实环顾四周,并且发现了这个关于2岁的SO问题Java printf using variable field size?,但这是最后一句话吗?

1 个答案:

答案 0 :(得分:1)

格式说明符的一般语法是

  

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

您也可以使用

代替printf
  

的String.format( “%” + WID + “d”,VAL);

是的,这些是您使用Java Formatter的唯一方法。