如果我们System.out.printf("%10s", "1");
默认使用,则会添加空格字符以填入10,对吧?有没有办法改变这个?
我知道,您可以0
通过0
在之前指定添加s
,但是printf
支持其他任何内容吗?
不.空间是硬编码的.这是java.util.Formatter源码的片段,甚至:
private String justify(String s) {
if (width == -1)
return s;
StringBuilder sb = new StringBuilder();
boolean pad = f.contains(Flags.LEFT_JUSTIFY);
int sp = width - s.length();
if (!pad)
for (int i = 0; i < sp; i++) sb.append(' ');
sb.append(s);
if (pad)
for (int i = 0; i < sp; i++) sb.append(' ');
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)
如果你想获得一个不同的填充,你可以做一个后格式替换或类似的东西:
System.out.print(String.format("%10s", "1").replace(' ', '#'));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10190 次 |
最近记录: |