此错误消息的含义是什么:
线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:Program.main处为1(Program.java:123)
这是第123行:
System.out.println(tempHolder[1]);
就是说没有数组元素1?但是,这是一个循环,该位置的所有100个元素都可以正常打印。这是代码:
数组
splitResult
具有100个元素。 int counter = 0;
for (String s: splitResult){
counter++;
counterForRegex = String.valueOf(counter);
stringRegex = "(\\s*)?" + counterForRegex + "(\\s*)?";
patternCounter = Pattern.compile(stringRegex);
tempHolder = patternCounter.split(s, 2); // This takes each of the 100 elements and separates it into 0) before the number, and 1) after the number, putting each element in array tempHolder.
splitResult[counter-1] = tempHolder[0];
System.out.println(tempHolder[1]); // These all print fine.
}
最佳答案
tempHolder = patternCounter.split(s, 2);
//当找不到该数字时,分割结果将仅返回输入。
tempHolder.length将为1,在这种情况下,尝试访问tempHolder [1]时将抛出java.lang.ArrayIndexOutOfBoundsException。
tempHolder = patternCounter.split(s, 2);
if(tempHolder.length>=2){//check the length of tempHolder
splitResult[counter-1] = tempHolder[0];
System.out.println(tempHolder[1]); // These all print fine.
}