如何解决IndexOutOfBound异常?

时间:2018-02-18 10:22:11

标签: java arrays indexoutofboundsexception

我的代码出了问题。无论我做什么,我都会在if语句的行中收到IndexOutOfBoundException。我已经尝试了一切。 程序通常应该始终在整数数组的第一个和最后一个位置检查索引的值。如果值相等,那么如果它们不相等,它们将被打印出来。 谢谢你的帮助!

public class Test {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int[]test = new int[] {3,4,5,5,4,3};
    IntSym(test);
    System.out.println(test.length);

}

public static void IntSym(int[]test) {
    for(int j=0; j<=test.length/2;j++) {
        if(test[j]==test[test.length-j]) {
            System.out.println(j+"."+ (test.length-j) +". are equal");
        }else{
            System.out.println(j+"."+ (test.length-j) +". aren't equal");
        }
    }
}

1 个答案:

答案 0 :(得分:3)

j=0以来的第一次迭代中,test[test.length-j]将抛出ArrayIndexOutOfBoundsException

要解决此问题,请将其替换为test[test.length-j-1]

public static void IntSym(int[]test) {
    for(int j=0; j<=test.length/2;j++) {
        if(test[j]==test[test.length-j-1]) {
            System.out.println(j+"."+ (test.length-j) +". are equal");
        }else{
            System.out.println(j+"."+ (test.length-j) +". aren't equal");
        }
    }
}