我只是想把一些c代码转换成java,但我在这方面遇到了一些问题 String.printf
.
在c中,要根据变量获得特定宽度,我可以使用:
printf("Current index = %*d\n", sz, index);
它将根据 sz
.
尝试:
System.out.println(String.format("Current index = %*d\n", sz, index));
因为它不喜欢 *
.
我现在有以下问题:
System.out.println(String.format("Current index = %" + sz + "d\n", index));
但我希望有更好的办法,是吗?
4条答案
按热度按时间ctrmrzij1#
假设指数适合sz,你可以这样做:
注意,不使用
Format
或者它的任何子类,都没有Locale
向输出中添加了诸如“”、“”或“”之类的依赖字符。ht4b089n2#
这可以说不比你的“笨拙”好多少,但是这里有一个方法可以嵌入到调用中
printf
它将用宽度代替你传递给它的星号。其结果被用作实际格式。例如,考虑以下调用:我将通过嵌入函数替换第一个和第三个宽度:
代码如下:
zysjyyx43#
也许太迟了,但把它放在这里给别人
在Java1.8中测试
xghobddn4#
在使用之前声明一个额外的变量
printf
:(这是我在网络搜索中找到的第一个解决方案)