如何在此代码中修复ArrayIndexOutOfBoundsException?

时间:2019-03-30 06:25:34

标签: java arrays

因此,我试图用/,-和空格分割我的String输入,并且在dateConversion方法中,我试图调用我的String数组中的第三个术语,称为term。如果我的数组只有2个元素,则会收到错误消息,并且理解原因;问题是,即使我在分割原始输入之前声明了数组的第三个元素,程序仍会崩溃。它应该打印出最后一个if语句。

    Scanner in=new Scanner(System.in);

    System.out.println(message);
    String input=in.nextLine();

    if(input.equals("quit"))
    {
        System.out.println("Bye!");
        return null;
    }
    else
        return input;

public static void dateConversion(String input){

    String[] terms=new String[2];

    terms[2].equals(null);

    terms=input.split("-|/| ");

    if(terms[2].equals(null))
        System.out.println("Wrong format. Enter again.\n");
}

如果数组的第三项存在(或者在我测试它的时候就可以了),程序应该继续执行,但是如果有意不存在,则应该打印最后的if语句,而不是程序崩溃。还有其他方法可以声明条件[2],以免崩溃吗?

1 个答案:

答案 0 :(得分:1)

如果像这样完成声明带有两个空格的数组->字符串条件=新的字符串[2]。然后将创建两个拖曳空间:terms [0]和terms [1]。索引从0开始,而不是1。