问题描述
我试图在 ReadyApi 测试中删除 groovy 中的最后一个零数字。
例如
273.900 必须是 273.9
17.580 必须是 17.58
116.000 必须是 116
def qTY = context.expand( '${Stock DataSource#QTY}' )
qTY = qTY.replaceAll('.000','')
qTY = qTY.replaceAll('00','')
return qTY
有人可以帮我写这个更有效率吗? 谢谢
解决方法
应该这样做:
def elideZeros(s) {
s.reverse().dropWhile { it in ['0','.'] }.reverse()
}
assert elideZeros('273.900') == '273.9'
assert elideZeros('17.580') == '17.58'
assert elideZeros('116.000') == '116'
,
您可以为此使用相对简单的正则表达式:
'273.002000'.replaceFirst( /((?<=(\..{0,20}))0+)$/,'' ).replaceFirst( /\.$/,'' )
印刷品
273.002