Выравнивание числа ведущими нулями

Вернуться назад

12.01.2018

Рассмотрим случай, когда у вас есть некое число, количество цифр в котором заранее неизвестно и вам необходимо, чтобы число всегда составляло 5 знаков, то есть нужно добавить необходимое количество нулей слева. Есть целых два способа сделать это.

Без использования сторонних библиотек

Если у вас небольшой проект и не хочется тянуть лишнюю зависимость, то используйте String.format():

System.out.println(String.format("%05d"42));

В результате мы увидим строку «00042». К недостаткам данного способа можно отнести то, что нужно помнить правила форматирования в методе String.format().

С использованием библиотеки от apache

Если же у вас достаточно крупный проект, то, возможно, вы уже используете библиотеку commons-lang3 от apache:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.7</version>
</dependency>

Она содержит метод StringUtils.leftPad(). Пример кода:

// org.apache.commons.lang3.StringUtils
System.out.println(StringUtils.leftPad(Integer.toString(42), 5'0'));

Результат будет точно такой же: «00042».

Другой метод rightPad() добавит символы справа от исходной строки.

Таким образом, в случае использования сторонней библиотеки от apache гораздо легче запомнить название нужного метода, но приходится тянуть лишнюю зависимость.

Тэги: Java, maven, Apache.