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
%03den el especificador de formato para el entero. Esto0significa que el número se rellenará con ceros si tiene menos de tres dígitos (en este caso).Ver los
Formatterdocumentos para otros modificadores.fuente
Ver
java.util.Formatterpara 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
StringUtilsclase de apache commons-lang :Como
StringUtils.leftPad()es más rápido queString.format()fuente