使用 Java 字符串格式格式化整数
我想知道是否可以使用 Java 中的 String.format 方法给出一个前面有零的整数?
例如:
1会变成001
2会变成002
...
11 将变成 011
12 将变成 012
...
526 仍为 526
...etc
目前我已经尝试过以下代码:
String imageName = "_%3d" + "_%s";
for( int i = 0; i < 1000; i++ ){
System.out.println( String.format( imageName, i, "foo" ) );
}
不幸的是,这在数字前面有 3 个空格。是否可以在数字前面加零?
I am wondering if it is possible, using the String.format method in Java, to give an integer preceding zeros?
For example:
1 would become 001
2 would become 002
...
11 would become 011
12 would become 012
...
526 would remain as 526
...etc
At the moment I have tried the following code:
String imageName = "_%3d" + "_%s";
for( int i = 0; i < 1000; i++ ){
System.out.println( String.format( imageName, i, "foo" ) );
}
Unfortunately, this precedes the number with 3 empty spaces. Is it possible to precede the number with zeros instead?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
请参阅
java.util.Formatter
了解更多信息。See
java.util.Formatter
for more information.在整数的格式说明符中使用
%03d
。0
表示如果数字少于三位(在本例中),则该数字将以零填充。请参阅
Formatter
文档其他修饰符。Use
%03d
in the format specifier for the integer. The0
means that the number will be zero-filled if it is less than three (in this case) digits.See the
Formatter
docs for other modifiers.如果您使用的是名为 apache commons-lang 的第三方库,以下解决方案可能会很有用:
使用 apache commons-lang :
因为
StringUtils.leftPad()
比String.format()
更快If you are using a third party library called apache commons-lang, the following solution can be useful:
Use
StringUtils
class of apache commons-lang :As
StringUtils.leftPad()
is faster thanString.format()
而不是使用 String.format(**)。如果您使用为此类目的而构建的 DecimalFormat java API,那就太好了。让我用代码解释一下
Instead of using String.format(**). it's good if you use DecimalFormat java API which builds for this type of purposes.Let me explain with code