我想知道是否有可能使用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个空格。是否可以在数字前面加零?
答案 0 :(得分:188)
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
。
答案 1 :(得分:162)
在整数的格式说明符中使用%03d
。 0
表示如果数字少于三(在本例中)数字,则该数字将为零填充。
有关其他修饰符,请参阅Formatter
文档。
答案 2 :(得分:9)
如果您使用的是名为apache commons-lang的第三方库,则以下解决方案可能很有用:
使用StringUtils
类apache commons-lang:
int i = 5;
StringUtils.leftPad(String.valueOf(i), 3, "0"); // --> "005"
由于StringUtils.leftPad()
比String.format()