Я получил следующий Java-код:Java: ArrayIndexOutOfBounds
public void varsInvullen(String tempTekst){
int i,aantalVraagtekens = 0;
String ingevuldeParameter;
for(i= 0; tempTekst.length() > i; i++){
if(tempTekst.charAt(i) == '?'){
aantalVraagtekens++;
System.out.println(aantalVraagtekens);
}
}
String[] variables1 = new String[aantalVraagtekens+1];
String[] tempTekst2 = tempTekst.split("\\s+");
for(i = 0; tempTekst2.length > i; i++){
if(tempTekst2[i].charAt(0) == '?'){
variables1[i] = tempTekst2[i];
if(!variables1[i].equals("null")){
System.out.println("Invoer voor parameter: "+variables1[i]+" >>>");
ingevuldeParameter = Input.readString();
tempTekst = tempTekst.replace(variables1[i],ingevuldeParameter);
i++;
}
}
}
System.out.println("De volledig ingevulde template:");
System.out.println(tempTekst);
}
Ошибки я получаю это:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at Mailmatcher.varsInvullen(Mailmatcher.java:68)
at Mailmatcher.personaliseren(Mailmatcher.java:90)
at Mailmatcher.menu(Mailmatcher.java:29)
at Mailmatcher.main(Mailmatcher.java:131)
Я знаю, что эта ошибка означает, что мой массив слишком мал, но это не так, потому что, если я играю с System.out.println(variables1.length);
в разных местах, он всегда показывает, что массив должен быть правильного размера.
Не знаю, ясно ли, что я имею в виду, если вам нужна дополнительная информация, просто просить.
Спасибо!
И какая линия точно соответствует линии 68? Я чувствую, что это может иметь какое-то отношение к 'i ++;' внутри цикла for. Должно ли это действительно быть там? – Sinkingpoint
variables1 [i] = tempTekst2 [i]; – user3165926