Как заполнить строки нулями в java?

В соответствии с требованием я хочу получить уникальную ссылку в соответствии со следующим форматом.

Ссылка должна быть = 15 символов Формат даты (гггг-мм-дд) + НУЛИ + идентификатор; пример 1 = 201911070000181 пример 2 = 201911070000090

В примере кода я показал дату как строку и идентификатор как строку, кто-нибудь может мне помочь? Спасибо.

Date today = Utils.getCurrentDateByTimeZone(environment.getProperty(TIME_ZONE));
    String pattern = "yyyyMMdd";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
    String date = simpleDateFormat.format(today);
    String merchantId = String.valueOf(transactionData.getMerchant().getMerchantId());
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы всегда можете использовать StringBuilder:

StringBuilder sb = new StringBuilder(15);
sb.append(date);
for (int i = date.length() ; i < 15 - merchantId.length(); i++) {
    sb.append('0');
}
sb.append (merchantId);
String reference = sb.toString();
Ответ принят как подходящий

Для этого вы можете использовать формат String.

String.format("%s%07d", date, id);
// if date = "20191107" and id=181, this will give 201911070000181

Что делает этот код, так это то, что он добавляет 0 перед идентификатором до тех пор, пока его длина не станет равной 7. (Первая часть - это дата, и я предполагаю, что дата всегда имеет длину 8 символов.) Это не будет работать, если идентификатор является строкой, поэтому я предлагаю привести его к целое число.

Другие вопросы по теме