Я получаю ArrayIndexOutOfBoundsException, это полный код
public static void main(String[] args){
input();
}
static void input(){
Scanner scan=new Scanner(System.in);
System.out.println("Please enter the first name");
String name1=scan.nextLine();
System.out.println("Please enter the second name");
String name2=scan.nextLine();
boolean retval=name1.equalsIgnoreCase(name2);
if(retval){
String[] strs=name1.split(" ");
for(int x=0;x<strs.length-1;x++){
String con=Character.toString(strs[x].charAt(0));
System.out.print(con+ " ");
}
System.out.print(strs[strs.length]);
}
else{
input();
}
}
Итак, я делаю код, в котором вы вводите два имени и, если они равны (игнорируя регистры), программа напечатает первые и средние инициалы, а затем фамилия. Я не знаю, почему я получаю эту ошибку, так как, как вы можете видеть, значение переменной x определенно меньше длины массива. По какой-то причине эта ошибка появляется каждый раз.
run:
Please enter the first name
Liam Elijah Lucas
Please enter the second name
liam elijah lucas
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Exercise3.input(Exercise3.java:34)
at Exercise3.main(Exercise3.java:16)
L E Java Result: 1
BUILD SUCCESSFUL (total time: 15 seconds)
Очевидно, что последний индекс после l oop всегда на единицу больше, чем максимальное количество индексов в массиве strs. Если кто-то может ответить и помочь, это будет с благодарностью.