como - Formatee un entero utilizando Java String Format
string.format java double (3)
Me pregunto si es posible, usando el método String.format en Java, dar un entero que preceda a ceros?
Por ejemplo:
1 se convertiría en 001
2 se convertiría en 002
...
11 se convertiría en 011
12 se convertiría en 012
...
526 permanecerían como 526
... etc
Por el momento, probé el siguiente código:
String imageName = "_%3d" + "_%s";
for( int i = 0; i < 1000; i++ ){
System.out.println( String.format( imageName, i, "foo" ) );
}
Desafortunadamente, esto precede al número con 3 espacios vacíos. ¿Es posible preceder el número con ceros en su lugar?
Si está utilizando una biblioteca de terceros llamada Apache commons-lang, la siguiente solución puede ser útil:
Utilice la clase StringUtils
de apache commons-lang :
int i = 5;
StringUtils.leftPad(String.valueOf(i), 3, "0"); // --> "005"
Como StringUtils.leftPad()
es más rápido que String.format()
Use %03d
en el especificador de formato para el entero. El 0
significa que el número será cero si tiene menos de tres dígitos (en este caso).
Ver los documentos de Formatter
para otros modificadores.
String.format("%03d", 1); // => "001"
// │││ └── print the number one
// ││└────── ... as a decimal integer
// │└─────── ... minimum of 3 characters wide
// └──────── ... pad with zeroes instead of spaces
Ver java.util.Formatter
para más información.