Какой API можно использовать для форматирования int в 2 цифры? - PullRequest
9 голосов
/ 20 октября 2010

Какой API можно использовать для форматирования int длиной до 2 цифр?

Например, в этом цикле

for (int i = 0; i < 100; i++) {
   System.out.println("i is " + i);
}

Что можно использовать для проверки i распечатывается как 01, 02, 10, 55 и т. д. (в диапазоне от 01 до 99)

Ответы [ 3 ]

28 голосов
/ 20 октября 2010

Вы могли бы просто сделать

System.out.printf("i is %02d%n", i);

Подробнее смотрите в документации по Formatter. Соответствующие части:

  • Спецификаторы формата для общего, символьного и числового типов имеют следующий синтаксис:

    %[argument_index$][flags][width][.precision]conversion

(В данном конкретном случае у вас есть 0 как флаг, 2 как ширина и d как преобразование.)

Преобразование
'd' интеграл Результат форматируется как десятичное целое число

Флаги
'0' Результат будет дополнен нулями


Этот синтаксис форматирования можно использовать и в некоторых других местах, например, так:

String str = String.format("i is %02d", i);
10 голосов
/ 20 октября 2010

String класс действительно выполняет форматирование.

В вашем случае попробуйте:

String.format("%02d",i)

4 голосов
/ 20 октября 2010

Вы можете использовать объект DecimalFormat .

DecimalFormat formatter = new DecimalFormat("#00.###");
int test = 1;

System.out.println(formatter.format(test));

Напечатает "01".

...