1

我使用 Java 并尝试编写程序来读取许多患者,然后让员工输入他们的姓名和年龄。

我希望程序读取全名,例如(Maha Saeed)所以我写了这样的代码,但我不知道为什么它不起作用

name = scan.nextLine();

这是完整的代码

import java.util.*;

public class Answer1
{
static Scanner scan = new Scanner (System.in);
public static void main (String[] args)
{

int age ; 
int PatientNumber ;
int PatientNO;
String name ;


System.out.print("Enter number of patients :");

PatientNumber =  scan.nextInt();
PatientNO = 1;

while ( PatientNO <= PatientNumber)
{
System.out.println("Patient #" +PatientNO);
System.out.print("Enter patient's Name: ");
name = scan.nextLine(); //<- here is the problem if I write scan.next it works but it reads only the first name

System.out.print("Enter patient's Age: ");
age= scan.nextInt();
PatientNO = PatientNO + 1;
}

}
}

谢谢大家

4

1 回答 1

11

请参阅为什么在调用 nextLine() 方法时无法在 Scanner(System.in) 中输入字符串?并且Scanner 在使用 next()、nextInt() 或其他 nextFoo() 方法后正在跳过 nextLine()

简单的解决方案,您可以使用 \n 字符:

scan.nextLine();
name = scan.nextLine();
于 2013-10-12T14:50:53.503 回答