java - 下一行间距问题
问题描述
我下面的程序会提示用户他们班上有多少孩子。输入号码后,他们将输入学生的所有姓名(名字)和(姓氏)。因此,我输入了一个 scan Next Line 语句,而不仅仅是 scan.next。因此,无论您输入什么数字,程序都会提示您少一个。请帮忙。
public class studentRoster {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
String [] students;
int size;
System.out.println("Enter the amount of students in your class: ");
size = scan.nextInt();
students = new String[size];
for (int i = 0; i < students.length; i++ ){
System.out.println("Enter a student name: ");
students [i] = scan.next();
}
System.out.println("Student Roster");
for ( int i = 0; i < students.length; i++ ){
System.out.println(students[i]);
}
}
}
解决方案
使用 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
推荐阅读
- ios - 可以将一个苹果开发者账户与主要苹果开发者账户关联吗?
- flutter - 更改动画的值并重新启动它
- flutter - 如何在颤动中显示没有上下文的对话框
- node.js - 使用 mongodb 向 nodeJs 模型添加新字段
- selenium - 可以清除 Selenium IDE 中的日志
- python - Python - 使用正则表达式编写模仿 strip() 方法的函数
- google-analytics - 如何在谷歌分析中查找搜索词历史
- python - glVertexAttribPointer 给出 NameError: name 'ArrayDatatype' is not defined?
- excel - 将一维数组转换为动态维数组的最佳 VBA 方法是什么?
- javascript - react js在每一行中分别显示数据