J'ai une méthode qui invite l'utilisateur à saisir des nombres entiers et fait de cette entrée la longueur du tableau de chaînes. Le problème semble être lors de l'itération sur le tableau ... Si je tape 3 comme "numofstud", il n'enregistrera que deux valeurs. J'ai essayé d'ajouter for (int i = 0; i < nameArray.length + 1; i++)
mais cela ne m'a donné qu'une erreur ArrayIndexOutOfBounds
...Tableaux itinérants java
Quelqu'un peut-il me dire où est mon erreur lors de l'itération sur la matrice. Merci
void userInput(){
Scanner s = new Scanner(System.in);
System.out.println("Please enter the number of students: ");
while(!s.hasNextInt()){
s.next();
} numofstud = s.nextInt();
String nameArray[] = new String[numofstud];
for(int i = 0; i < nameArray.length ; ++i){
System.out.println("Please enter the student's name: ");
while(!s.hasNext("[a-zA-Z]+")){
s.next();
}
nameArray[i] = s.nextLine();
}
}
Comment savez-vous qu'il ne stocke que deux valeurs? Cela vous invite-t-il trois fois? Avez-vous un exemple d'entrée/sortie? – lucasvw
Copie possible de [Scanner saute nextLine() après avoir utilisé next(), nextInt() ou d'autres méthodes nextFoo()] (http://stackoverflow.com/questions/13102045/scanner-is-skipping-nextline-after- en utilisant-next-nextint-ou-autre-nextfoo) –