You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy如何移除百分号提取整数实现百分比值大小比较

Groovy 百分比字符串转数值比较方案

现有场景

你当前持有存储百分比字符串的列表:

def list = ['100%', '25%', '80%', '1%', '100%', '12%', '100%', '75%', '20%', '100%']

原本计划通过如下遍历逻辑做阈值判断,但因为列表元素是带%的字符串,无法直接和整数90做数值比较:

for (i in list){
    if (i < 90){
       println 'failed'
    }
}

解决方法

核心逻辑就是两步:移除每个元素里的百分号、把处理后的字符串转成整数,再做比较即可,两种常用实现按需选择:

  • 最小改动方案:遍历过程中实时转换,不修改原列表
for (str in list) {
    // 移除百分号后转整数,也可以写成 (str - '%').toInteger(),Groovy 原生支持字符串减法移除指定字符
    def val = str.replace('%', '').toInteger()
    if (val < 90) {
        println 'failed'
    }
}
  • 预转换方案:提前把整个列表转成整数列表,适合后续还要多次使用数值做计算的场景
// 一次性完成全列表的类型转换
def intList = list.collect { it.replace('%', '').toInteger() }
// 后续遍历直接做数值比较即可
for (val in intList) {
    if (val < 90) {
        println 'failed'
    }
}

注意:不要直接拿字符串类型的百分比值和整数做比较,弱类型语言下字符串和数值的比较规则不符合数值大小判断逻辑,会得到错误结果。

内容的提问来源于stack exchange,提问作者jacaaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 22:51:07