Je me demande s'il est possible, en utilisant la méthode String.format en Java, de donner un entier précédant les zéros?
Par exemple:
1 deviendrait 001
2 deviendrait 002
...
11 deviendrait 011
12 deviendrait 012
...
526 resterait comme 526
... etc.
Pour le moment, j'ai essayé le code suivant:
String imageName = "_%3d" + "_%s";
for( int i = 0; i < 1000; i++ ){
System.out.println( String.format( imageName, i, "foo" ) );
}
Malheureusement, cela précède le nombre avec 3 espaces vides. Est-il possible de faire précéder le nombre de zéros à la place?
java
string-formatting
number-formatting
J'ai mal à la tête
la source
la source
Réponses:
À utiliser
%03d
dans le spécificateur de format pour l'entier. Le0
signifie que le nombre sera rempli de zéros s'il comporte moins de trois (dans ce cas) chiffres.Consultez la
Formatter
documentation pour les autres modificateurs.la source
Voir
java.util.Formatter
pour plus d'informations.la source
Si vous utilisez une bibliothèque tierce appelée apache commons-lang, la solution suivante peut être utile:
Utilisez la
StringUtils
classe de apache commons-lang :Comme
StringUtils.leftPad()
c'est plus rapide queString.format()
la source