Ich frage mich, ob es möglich ist, mit der String.format-Methode in Java eine Ganzzahl vor Nullen anzugeben.
Beispielsweise:
1 würde 001 werden
2 würde 002 werden
...
11 würde 011 werden
12 würde 012 werden
...
526 würde bleiben wie 526
... etc.
Im Moment habe ich folgenden Code ausprobiert:
String imageName = "_%3d" + "_%s";
for( int i = 0; i < 1000; i++ ){
System.out.println( String.format( imageName, i, "foo" ) );
}
Leider geht der Zahl 3 Leerzeichen voraus. Kann man der Zahl stattdessen Nullen voranstellen?
java
string-formatting
number-formatting
Mein Kopf tut weh
quelle
quelle
Antworten:
Verwenden Sie
%03d
im Formatbezeichner für die Ganzzahl. Die0
bedeutet , dass die Anzahl wird mit Nullen aufgefüllt , wenn es weniger als drei (in diesem Fall) Ziffern.Formatter
Weitere Modifikatoren finden Sie in den Dokumenten.quelle
Siehe
java.util.Formatter
für weitere Informationen.quelle
Wenn Sie eine Drittanbieter-Bibliothek namens apache commons-lang verwenden, kann die folgende Lösung hilfreich sein:
Verwenden Sie die
StringUtils
Klasse von Apache commons-lang :Da
StringUtils.leftPad()
ist schneller alsString.format()
quelle