Как преобразовать целое число в строковое значение указанной длины с помощью скрипта Groovy

Кто-нибудь знает, как преобразовать целое число в строковое значение с указанным количеством цифр с помощью кода скрипта Groovy? Например, я хочу преобразовать целочисленные значения 1, 2, 3, 4 в 4-значные строки как «0001», «0002», «0003» и «0004».


person Spazik    schedule 18.07.2012    source источник


Ответы (3)


Просто используйте Java String.format:

def vals = [ 1, 2, 3, 4 ]

def strs = vals.collect {
  String.format( "%04d", it )
}

strs.each { println it }

печатает:

0001
0002
0003
0004

Другие варианты можно найти здесь

person tim_yates    schedule 18.07.2012
comment
Как добавить настройки локализации десятичной пунктуации? - person Seweryn Habdank-Wojewódzki; 22.10.2018

Используйте sprintf, который добавлен в класс Object, чтобы он всегда был доступен:

assert sprintf("%04d", 1) == "0001"

См. документацию JDK для строки формата для получения дополнительной информации.

person astimony    schedule 18.07.2012

Вы можете использовать String.format(), как описано в JN1525-Strings.

values = [1, 2, 3, 4]
formatted = values.collect {
    String.format('%04d', it)
}
assert formatted == ['0001', '0002', '0003', '0004'] 
person Jonny Heggheim    schedule 18.07.2012