Me pregunto si es posible, utilizando el método String.format en Java, dar un entero que precede 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 se mantendría como 526
... etc.
Por el momento he probado 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?
java
string-formatting
number-formatting
Me duele la cabeza
fuente
fuente
Respuestas:
Usar
%03d
en el especificador de formato para el entero. Esto0
significa que el número se rellenará con ceros si tiene menos de tres dígitos (en este caso).Ver los
Formatter
documentos para otros modificadores.fuente
Ver
java.util.Formatter
para más información.fuente
Si está utilizando una biblioteca de terceros llamada apache commons-lang, la siguiente solución puede ser útil:
Utilice la
StringUtils
clase de apache commons-lang :Como
StringUtils.leftPad()
es más rápido queString.format()
fuente