Ответ 1
Используйте %03d
в спецификаторе формата для целого. 0
означает, что число будет заполнено нулем, если оно меньше трех (в данном случае) цифр.
Смотрите документы Formatter
для других модификаторов.
Мне интересно, возможно ли, используя метод String.format в Java, дать целое число, предшествующее нулям?
Например:
1 станет 001
2 станет 002
...
11 станет 011
12 станет 012
...
526 останется 526
... и т.д.
На данный момент я пробовал следующий код:
String imageName = "_%3d" + "_%s";
for( int i = 0; i < 1000; i++ ){
System.out.println( String.format( imageName, i, "foo" ) );
}
К сожалению, это предшествует числу с 3 пустым пространством. Возможно ли предшествовать числу нулями вместо?
Используйте %03d
в спецификаторе формата для целого. 0
означает, что число будет заполнено нулем, если оно меньше трех (в данном случае) цифр.
Смотрите документы Formatter
для других модификаторов.
String.format("%03d", 1); // => "001"
// │││ └── print the number one
// ││└────── ... as a decimal integer
// │└─────── ... minimum of 3 characters wide
// └──────── ... pad with zeroes instead of spaces
Подробнее см. java.util.Formatter
.
Если вы используете стороннюю библиотеку под названием apache commons-lang, может оказаться полезным следующее решение:
Используйте StringUtils
класс apache commons-lang:
int i = 5;
StringUtils.leftPad(String.valueOf(i), 3, "0"); // --> "005"
Поскольку StringUtils.leftPad()
быстрее, чем String.format()