-1
私は、ユーザーに整数入力を促し、その入力に文字列配列の長さを設定するメソッドを持っています。問題は、配列を反復処理しているときのようです... "numofstud"として3を入力すると、2つの値しか格納されません。私はfor (int i = 0; i < nameArray.length + 1; i++)
を追加しようとしましたが、それは私にArrayIndexOutOfBounds
エラーを与えました...配列を反復するjava
誰かが私の間違いがアレイを反復するときに私に教えてくれますか? おかげ
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();
}
}
2つの値しか格納されていないことをどのように知っていますか?それは3回あなたに促しますか?あなたはサンプル入出力を持っていますか? – lucasvw
next()、nextInt()またはnextFoo()メソッドを使用した後に[スキャナがnextLine()をスキップしている可能性があります](http://stackoverflow.com/questions/13102045/scanner-is-skipping-nextline-after- using-next-nextint-or-other-nextfoo) –