【问题标题】:Remove last zero digits in groovy in ReadyApi在 ReadyApi 中删除 groovy 中的最后零位
【发布时间】:2021-01-21 13:26:07
【问题描述】:

我正在尝试在我的 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

有人可以帮我写这个更有效率吗? 谢谢

【问题讨论】:

  • “不完整”是什么意思。请提供失败的输入以及失败的原因。

标签: groovy ready-api


【解决方案1】:

应该这样做:

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'

【讨论】:

    【解决方案2】:

    您可以为此使用相对简单的正则表达式:

    '273.002000'.replaceFirst( /((?<=(\..{0,20}))0+)$/, '' ).replaceFirst( /\.$/, '' )
    

    打印

    273.002

    【讨论】:

      猜你喜欢
      • 2017-03-17
      • 1970-01-01
      • 1970-01-01
      • 2022-10-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 2021-06-20
      相关资源
      最近更新 更多