pax*_*blo 28 java string formatting printf
我只是想将一些C代码转换为Java,我遇到了一些麻烦String.printf.
在C中,为了获得基于变量的特定宽度,我可以使用:
printf("Current index = %*d\n", sz, index);
Run Code Online (Sandbox Code Playgroud)
它会将整数格式化为特定的大小sz.
试:
System.out.println(String.format("Current index = %*d\n", sz, index));
Run Code Online (Sandbox Code Playgroud)
导致错误,因为它不喜欢*.
我目前有以下kludge:
System.out.println(String.format("Current index = %" + sz + "d\n", index));
Run Code Online (Sandbox Code Playgroud)
但是我希望有一个更好的方法,是吗?
小智 29
使用前声明一个额外的变量printf:
String format = "%" + fieldSize + "d";
System.out.printf(format, yourVariables);
Run Code Online (Sandbox Code Playgroud)
(这是我从网络搜索中找到的第一个解决方案)