nextLine问题();
可能重复:
nextInt后使用nextLine时扫描仪出现问题
我正在尝试创建一个程序,让用户使用扫描仪将值输入到数组中。
但是,当程序要求学生的最近亲属时,它不会让用户输入任何内容并立即结束程序。
以下是我所做的代码:
if(index!=-1)
{
Function.print("Enter full name: ");
stdName = input.nextLine();
Function.print("Enter student no.: ");
stdNo = input.nextLine();
Function.print("Enter age: ");
stdAge = input.nextInt();
Function.print("Enter next of kin: ");
stdKin = input.nextLine();
Student newStd = new Student(stdName, stdNo, stdAge, stdKin);
stdDetails[index] = newStd;
}
我曾尝试使用next(); 但它只会采用用户输入的第一个字,这不是我想要的。 无论如何要解决这个问题吗?
当您按Enter键时,出现问题,这是一个换行符n
字符。 nextInt()
仅消费整数,但会跳过换行符n
。 为了解决这个问题,你可能需要在读取int
之后添加一个额外的input.nextLine()
,这会消耗n
。
Function.print("Enter age: ");
stdAge = input.nextInt();
input.nextLine();.
// rest of the code
使input.nextLine();
在input.nextInt();
后调用input.nextInt();
直到行尾。
例:
Function.print("Enter age: ");
stdAge = input.nextInt();
input.nextLine(); //Call nextLine
Function.print("Enter next of kin: ");
stdKin = input.nextLine();
链接地址: http://www.djcxy.com/p/96065.html