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

Groovy脚本问题:查找字符串中x的位置并按规则存入列表

Groovy脚本修正:提取字符串中连续'x'的位置

你的脚本存在几处问题导致无法正常运行,以下是问题点和修正后的代码:

原脚本的问题

  • 变量名拼写错误:多处把finalList写成了finaList,导致变量未定义报错
  • 列表长度判断错误:Groovy中列表的长度要用size()方法,length()是字符串专属的方法
  • 单个x的存储格式不对:原代码[tempaList]会生成嵌套列表(比如[[5]]),但需求是[5]这种单元素列表
  • 循环结束后漏处理剩余的x:如果字符串末尾是'x',循环结束后临时列表里的内容不会被加入最终列表

修正后的脚本

checkStr='01xx0x1'
i=0
tempaList=[]
finalList=[]

while (i < checkStr.length()){
    if(checkStr[i] == 'x'){
        tempaList.add(i)
    }else{
        // 遇到非x字符时,处理临时列表里的x位置
        if(tempaList.size() > 1){
            finalList.add([tempaList[0], tempaList[-1]])
        }else if(tempaList.size() == 1){
            finalList.add([tempaList[0]])
        }
        tempaList=[]
    }
    i += 1
}

// 处理循环结束后剩下的x(比如字符串末尾是x的情况)
if(tempaList.size() > 0){
    if(tempaList.size() > 1){
        finalList.add([tempaList[0], tempaList[-1]])
    }else{
        finalList.add([tempaList[0]])
    }
}

println "finalList=${finalList}"

运行这段代码会输出:finalList=[[2, 3], [5]],完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:31:02