Использование scan.next () захватывает только до первого обнаруженного пробела, поэтому вы можете использовать .nextLine (), если пользователь вводит как имя, так и фамилию одновременно.
Чтобы этот код работал, добавьте scan.nextLine();
после назначения size
для пользовательского ввода. Затем измените students [i] = scan.next();
на students [i] = scan.nextLine();
.
Причина, по которой вам нужно это сделать, заключается в том, что .nextInt()
не принимает последний символ новой строки ввода пользователя, поэтому вам нужно вызвать .nextLine()
, чтобы учесть это.
public class StudentRoster {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
String [] students;
int size;
System.out.print("Enter the amount of students in your class: ");
size = scan.nextInt();
scan.nextLine();
students = new String[size];
for (int i = 0; i < students.length; i++ ){
System.out.print("Enter a student name: ");
students [i] = scan.nextLine();
}
System.out.println("Student Roster");
for ( int i = 0; i < students.length; i++ ){
System.out.println(students[i]);
}
}
}
Тестовый вывод
Enter the amount of students in your class: 4
Enter a student name: john Q
Enter a student name: albert E
Enter a student name: tyler D
Enter a student name: mickey M
Student Roster
john Q
albert E
tyler D
mickey M