Я хочу разделить входной параметр inputDetails
до уровня устройства.Я использую токенизатор для этого.Вот мой код:
Groovy Code:
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
входы?