丢失Java printf格式说明符中的幻数以生成列

时间:2014-01-23 16:25:35

标签: java printf magic-numbers

在C中,printf函数具有很好的通配符功能,您可以在其中使用星号,通常放置一个指定最小列宽的int。所以你可以去

#DEFINE COL_WIDTH 20;  

在预处理器指令中,然后你可以放

printf("%*s", COL_WIDTH, myString);

以20个字符的列打印myString。

这个星号技巧似乎没有在Java中实现。我得走了

printf("%20s", myString); 

代替。这是一个公然的神奇数字,特别是如果你试图使用printf来做一些像你想要一个简单的方法来一次改变很多行的列宽的表。所以,

  • 我是否缺少一些关于Java中printf的东西,这使得我想做的事情成为可能,或者

  • 是否有一种简洁且更像Java的方式来格式化表格中的输出,而不使用幻数?

1 个答案:

答案 0 :(得分:0)

printf("%"+COL_WIDTH+"s", myString);