我在一些未知的情况下发现了这个方法:
int number = 510;
StringBuilder sb = new StringBuilder();
sb.append(String.format("%05d", number));
System.out.println(sb);
//I expect "00510" but it prints "?????" (not a random number but precisely 5 question marks)
也许它与Locale有关,我无法复制。 有人可以解释这种情况发生的原因吗?
修改
我尝试更改所有可用的区域设置,但在我的设备上,结果始终是正确的。 也许它与StringBuilder appender有关?