在Groovy中进行数字替换

在处理数字的时候,经常需要将单个的数字前加个“0”以补充成标准的两位形式,比如将“3“转换成为”03“,这在日期中很常见,当然在日期中也有响应的格式可以解决,在此只是用Groovy的replaceAll来在给定的字符串中去替换。
代码很简单,也没有啥好说的,只是注意,在此用到了正则表达式(Groovy的[url=http://www.chinagroovy.org/groovywiki/doku.php/wiki:user_guide:regular_expressions]请看这里[/url]),代码如下:

def s = "6.1.2.10"
assert "06.01.02.10"==s.replaceAll("[\\d]{2}|[\\d]{1}",{it=it.toInteger()<10?'0'+it:it})

或者更简洁的方法(by[url=http://macrochen.iteye.com/] macrochen [/url]):

assert "06.01.02.10“ == s.replaceAll ("[\\d]+", {it = it.toInteger() < 10 ? "0"+it: it})

你可能感兴趣的:(groovy/grails)