在 groovy 中,如何 return 零填充范围?
In groovy, how do I return a zero padded range?
我需要 return 一个介于 001-999 之间的值。
所以我自然可以使用范围:
return 1..999
但我需要 return 介于 001 和 999 之间的值,这意味着用零填充单位和双位数。
在 groovy 中是否有一种优雅的方法来做到这一点?
我当然可以用 for 循环来做到这一点,但我找不到更优雅的方法来做到这一点。
这可能是一个解决方案:
(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')
}
简单的解决方案是:
(1..999).collect { String.format('%03d', it) }
Manipulate%03d
以填充任何需要的填充。例如:
`%04d` => 0001
`%05d` => 00001
...... so on and so forth
我需要 return 一个介于 001-999 之间的值。 所以我自然可以使用范围:
return 1..999
但我需要 return 介于 001 和 999 之间的值,这意味着用零填充单位和双位数。 在 groovy 中是否有一种优雅的方法来做到这一点?
我当然可以用 for 循环来做到这一点,但我找不到更优雅的方法来做到这一点。
这可能是一个解决方案:
(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')
}
简单的解决方案是:
(1..999).collect { String.format('%03d', it) }
Manipulate%03d
以填充任何需要的填充。例如:
`%04d` => 0001
`%05d` => 00001
...... so on and so forth