如何在Java的printf格式化部分使用变量控制补零位数?
Java printf 能否用变量控制补零位数?
当然可以实现,Java的printf支持动态指定格式里的宽度参数,不用硬写固定数值。
你写的%0xs语法不对,正确的方式是用%0*s,把控制宽度的变量x作为额外参数传给printf,注意参数顺序要先传宽度变量,再传要格式化的文本。
修正后的代码示例:
int x = 5; String text = "demo"; System.out.printf("%0*s\n", x, text);
这段代码和硬写%05s的效果完全一致,会在文本前补零到指定的宽度(比如这里输出00000demo,如果文本长度小于x的话)。
这里的*是宽度的占位符,printf会自动从后续参数里读取对应的数值来替代这个占位符,这样就能根据输入动态调整补零位数了。
内容的提问来源于stack exchange,提问作者Max Ringnalda
相关产品推荐
相关产品推荐

