В groovy, как вернуть диапазон с нулевым отступом? - PullRequest
2 голосов
/ 14 апреля 2019

Мне нужно вернуть значение между 001-999. поэтому, естественно, я могу использовать диапазоны:

return 1..999

но мне нужно вернуть что-то между 001 и 999, что означает заполнение нулями одно- и двузначных чисел. Есть ли элегантный способ сделать это в Groovy?

Конечно, я могу сделать это с помощью цикла for, но, возможно, есть более элегантный способ сделать это, которого я не смог найти.

Ответы [ 2 ]

4 голосов
/ 14 апреля 2019

Простое решение будет:

(1..999).collect { String.format('%03d', it) }

Манипулировать %03d для заполнения любой необходимой прокладкой.Например:

`%04d` => 0001
`%05d` => 00001
...... so on and so forth
3 голосов
/ 14 апреля 2019

Это может быть решением:

(1..999).collect {
    it.toString().padLeft(3, '0')
}

Или, возможно, вы захотите настроить диапазон в пределах:

def range = 1..999
def digitsNum = range.to.toString().length()
def padded = range.collect {
    it.toString().padLeft(digitsNum, '0')
}
...