Java 字符串和int的扫描器
代码如下: 导入java.util.Scanner 公开课预科1{Java 字符串和int的扫描器,java,Java,代码如下: 导入java.util.Scanner 公开课预科1{ public static void main(String[] args) { int programcase = 0; Scanner inputscan = new Scanner(System.in); System.out.print("Enter case number: "); programcase = inputscan.nextInt(); switch(progr
public static void main(String[] args)
{
int programcase = 0;
Scanner inputscan = new Scanner(System.in);
System.out.print("Enter case number: ");
programcase = inputscan.nextInt();
switch(programcase)
{
case 1:
{
////////////////////////////////////////////////////////////////////////////////////
//WRITE THE CODE OF CASE 1 HERE
Scanner scan = new Scanner(System.in);
System.out.println("Enter first student's name: ");
String name1 = scan.nextLine();
System.out.println("Enter " + name1 + "'s first grade: ");
int firstGrade = scan.nextInt();
System.out.println("Enter " + name1 + "'s second lab grade: ");
int secondGrade = scan.nextInt();
System.out.println("Enter " + name1 + "'s third lab grade: ");
int thirdGrade = scan.nextInt();
System.out.println("Enter " + name1 + "'s fourth lab grade: ");
int fourthGrade = scan.nextInt();
System.out.println("Enter second student's name: ");
int name2 = scan.nextInt();
System.out.println("Enter " + name2 + "'s first lab grade: ");
int secondfirstGrade = scan.nextInt();
System.out.println("Enter " + name2 + "'s second lab grade: ");
int secondsecondGrade = scan.nextInt();
System.out.println("Enter " + name2 + "'s third lab grade: ");
int secondthirdGrade = scan.nextInt();
System.out.println("Enter " + name2 + "'s fourth lab grade: ");
int secondfourthGrade = scan.nextInt();
System.out.println("/+CENG 111 Course Student List+" + "\\");
System.out.println("Name\t\t\t/Lab1\t/Lab2\t/Lab3\t/Lab4");
System.out.println(name1 + "\t\t\t/" + firstGrade + "\t/" + secondGrade + "\t/" + thirdGrade + "\t/" + fourthGrade);
System.out.println(name2 + "\t\t\t/" + secondfirstGrade + "\t/" + secondsecondGrade + "\t/" + secondthirdGrade + "\t/" + secondfourthGrade);
scan.close();
它继续运行,但并不重要。当我运行它时,它运行得很好,但在那里它说:
输入第二个学生的姓名:
进入二年级学生实验室:
因此,它不必等待我写下名称,而是跳转到另一个问题。我如何解决这个问题?这是Scanner类的错误行为。它无法正确清除其缓冲区,并希望所有输入都是相同的数据类型 要解决此问题,请改用BufferedReader
BufferedReader x = new BufferedReader (new InputStreamReader (System.in));
int a = Integer.parseInt (x.readLine());
String n = x.readLine();
“这是Scanner类的一个错误行为。”不,不是。你的答案根本错误。“它无法正确清除其缓冲区”它能够做到这一点,但前提是你能够正确使用这个类。阅读JavaDoc(可能还有一些教程)应该会对你有所帮助。