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?
This question is related to
java
string-formatting
number-formatting
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 :
int i = 5;
StringUtils.leftPad(String.valueOf(i), 3, "0"); // --> "005"
As StringUtils.leftPad()
is faster than String.format()
String.format("%03d", 1) // => "001"
// ¦¦¦ +-- print the number one
// ¦¦+------ ... as a decimal integer
// ¦+------- ... minimum of 3 characters wide
// +-------- ... pad with zeroes instead of spaces
See java.util.Formatter
for more information.
Source: Stackoverflow.com