Всегда хотелось найти быстрый и короткий способ дополнить число ведущими нулями.
Например, часто возникает необходимость вывести последовательность 1,2,3,...,10 в таком виде: 01,02,03,...,10. И сегодня я нашел
здесь такой способ.
Рассмотрим, этот способ на примере следующей задачи: выведем все числа от 1 до 100, дополнив числа до длины равной трем, т.е. 001,002,003,...,099,100.
public class LeadingZero {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
System.out.println(zero("" + i));
}
}
static String zero(String value){
return ("000" + value).substring(value.length());
}
}
"000" - это шаблон, который мы присоединяем спереди к цифрам числа, но т.к. шаблон уже содержим максимальное кол-во символов, то мы должны проигнорировать первые нули в кол-ве равному избытку, т.е. кол-ву символов в исходном числе, и тогда мы получим искомое число с ведущими нулями заданной длины. Со своей задачей прекрасно справляется функция
substring, которая берет часть строки от заданной позиции и до конца строки.
Также необходимо учитывать, что число может выйти за пределы шаблона.
Вывод программы будет следующим:
001
002
003
...
009
010
011
...
098
099
100