Zastanawiam się, czy jest możliwe, używając metody String.format w Javie, aby podać liczbę całkowitą poprzedzającą zera?
Na przykład:
1 stanie się 001
2 stanie się 002
...
11 stanie się 011
12 stanie się 012
...
526 pozostanie jako 526
... itd.
W tej chwili wypróbowałem następujący kod:
String imageName = "_%3d" + "_%s";
for( int i = 0; i < 1000; i++ ){
System.out.println( String.format( imageName, i, "foo" ) );
}
Niestety poprzedza liczbę z 3 pustymi spacjami. Czy można zamiast tego poprzedzić liczbę zerami?
java
string-formatting
number-formatting
Boli mnie głowa
źródło
źródło
Odpowiedzi:
Użyj
%03d
w specyfikatorze formatu dla liczby całkowitej. Te0
środki, że liczba będzie wynosić zero napełniony, jeśli jest mniej niż trzy (w tym przypadku) cyfr.Zobacz
Formatter
dokumentację dla innych modyfikatorów.źródło
Zobacz,
java.util.Formatter
aby uzyskać więcej informacji.źródło
Jeśli korzystasz z biblioteki innej firmy o nazwie apache commons-lang, przydatne może być następujące rozwiązanie:
Użyj
StringUtils
klasy apache commons-lang :Jak
StringUtils.leftPad()
jest szybszy niżString.format()
źródło