我知道我可以在Groovy中使用sort()
函数来对List进行排序。例如,我可以这样做:
def numbers = [1,4,3] as List
print numbers.sort() // outputs : [1,3,4]
现在我想知道Groovy中是否有一个函数,它可以执行以下操作:
def number = 143
// any method there to apply on number, so that i can get 134 as output!?
// that is i get sorted my number?
如果我错了,请纠正我!
答案 0 :(得分:3)
这应该有效:
def number = 143
def sorted = "$number".collect { it as int }.sort().join() as int
这:
"$number"
collect
每个char都是一个int(所以你得到一个int的列表)sort()
join()
将所有内容重新组合在一起作为字符串as int
将此String转换回int 顺便说一句,你不需要这样做:
def numbers = [1,4,3] as List
您的示例代码中的 ... [1,4,3]
已经是List
,因此as List
是多余的
答案 1 :(得分:1)
修改强>
这甚至更好(@tim有答案所以请不要改变,只需要处理我的Groovy印章; - )
降序版本将是:
def n = 143
println "$n".collect{it}.sort().reverse().join().toInteger() // or "as int" as you like
修改强> 这有点好:
def n = 143 as String
println n.collect{it}.sort().join().toInteger()
<强>原始强> 被黑了,但有效:
def n = 143.collect{it}.join(',').toList().sort().join()