使用 Java 字符串格式设置整数的格式

我想知道是否有可能使用Java中的String.format方法给出一个零之前的整数?

例如:

1 将变为 001
2 将变为 002
...
11 将成为 011
12 将变为 012
...
526将保持为526
...等

目前,我已经尝试了以下代码:

String imageName = "_%3d" + "_%s";

for( int i = 0; i < 1000; i++ ){
    System.out.println( String.format( imageName, i, "foo" ) );
}

不幸的是,这前面有3个空格。是否可以在数字前面加上零?


答案 1
String.format("%03d", 1)  // => "001"
//              │││   └── print the number one
//              ││└────── ... as a decimal integer
//              │└─────── ... minimum of 3 characters wide
//              └──────── ... pad with zeroes instead of spaces

有关详细信息,请参阅 java.util.Formatter


答案 2

在整数的格式说明符中使用。这意味着如果数字小于三个(在本例中为)数字,则该数字将为零填充。%03d0

有关其他修饰符,请参阅格式化程序文档。