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

Groovy按'-'拆分字符串拼接索引1、2值的代码实现求助

问题原因

Groovy中直接访问超出数组长度的索引会直接抛出ArrayIndexOutOfBoundsException异常,不会返回null,所以你直接访问output[2]再做判断的逻辑还没执行到判断语句就已经报错了,数组本身也没有exists()方法,这也是报错原因之一。

正确实现方案

判断数组的长度是否≥3即可(数组索引从0开始计数,索引2对应第三个元素,数组长度≥3时该元素才存在),同时你原有代码里多余的嵌套大括号可以直接删除。
修正后的完整代码如下:

import com.sap.it.api.mapping.*;
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;

def String split(String input,MappingContext context){
    def output = input.split("-");
    // 先判断数组长度是否足够,避免越界
    if (output.length >= 3) {
        return output[1] + output[2];
    } else {
        // 可根据业务需要补充长度不足2时的兜底逻辑,比如返回空或者原输入
        return output.length >= 2 ? output[1] : "";
    }
}

补充说明

如果你的业务场景能保证输入的字符串拆分后至少存在索引1的元素,可以省略兜底判断,直接返回output[1]即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:18:03