Issues with nextLine();
Possible Duplicate:
Scanner issue when using nextLine after nextInt
I am trying create a program where it lets the user inputs values into an array using scanner.
However, when the program asks for the student's next of kin, it doesn't let the user to input anything and straight away ends the program.
Below is the code that I have done:
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;
}
I have tried using next(); but it will only just take the first word of the user input which is not what I wanted. Is there anyway to solve this problem?
The problem occurs as you hit the enter key, which is a newline n
character. nextInt()
consumes only the integer, but it skips the newline n
. To get around this problem, you may need to add an additional input.nextLine()
after you read the int
, which can consume the n
.
Function.print("Enter age: ");
stdAge = input.nextInt();
input.nextLine();.
// rest of the code
Make input.nextLine();
call after input.nextInt();
which reads till end of line.
Example:
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/96066.html
上一篇: next()和nextLine()都不能以间距存储名称
下一篇: nextLine问题();