Gostaria de saber se é possível, usando o método String.format em Java, para dar um número inteiro antes de zeros?
Por exemplo:
1 se tornaria 001
2 se tornaria 002
...
11 se tornaria 011
12 se tornaria 012
...
526 permaneceria como 526
... etc.
No momento, tentei o seguinte código:
String imageName = "_%3d" + "_%s";
for( int i = 0; i < 1000; i++ ){
System.out.println( String.format( imageName, i, "foo" ) );
}
Infelizmente, isso precede o número com 3 espaços vazios. É possível preceder o número com zeros?
java
string-formatting
number-formatting
Minha cabeça dói
fonte
fonte
Respostas:
Use
%03d
no especificador de formato para o número inteiro. Os0
meios que o número será preenchida com zeros, se for menos do que três (neste caso) dígitos.Veja os
Formatter
documentos para outros modificadores.fonte
Veja
java.util.Formatter
para mais informações.fonte
Se você estiver usando uma biblioteca de terceiros chamada apache commons-lang, a seguinte solução pode ser útil:
Use a
StringUtils
classe do apache commons-lang :Como
StringUtils.leftPad()
é mais rápido queString.format()
fonte