我想将输入参数拆分inputDetails
为单位级别。我正在使用 tokenize 来执行此操作。这是我的代码:
常规代码:
def inputDetails = "1234-a0-12;1111-b0-34";
def cDesc = inputDetails.tokenize(";");
for (int i=0; i<cDesc.size(); ++i)
{
def cVer = cDesc.get(i);
def cNum = cVer.tokenize("-");
def a = cNum.get(0);
def b = cNum.get(1);
def c = cNum.get(2);
println (" DEBUG : Input details are, ${a} : ${b} : ${c} \n");
}
输出:
DEBUG : Input details are, 1234 : a0 : 12
DEBUG : Input details are, 1111 : b0 : 34
此输出是正确且符合预期的。但是,如果我将 Groovy 代码的第一行更改为以下内容:
def inputDetails = "1234-a0-12;1111-b0";
我收到以下错误消息:
java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java_util_List$get$6.call(Unknown Source)
at Script1.run(Script1.groovy:9)
我该如何解决它以防止IndexOutOfBoundsException
同时支持1234-a0-12;1111-b0-34
和1234-a0-12;1111-b0
输入?