Java扫描程序需要更多输入

时间:2015-12-13 15:23:45

标签: java

我在我的第一个java程序中扫描用户输入时遇到了一些麻烦。当我编译并运行它时,我立即被提示输入(即命令行停止并闪烁)。当我输入任何内容时,会打印第一行,要求我输入一个整数。然后打印第二行,我提示输入另一个值。

此程序的输出是我输入的前两个值。这很难解释,但它基本上要求3个输入值,并且只使用2个。

import java.util.Scanner;

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

      System.out.println("Enter an integer please...");
      int input = sc.nextInt();

      System.out.println("Enter your name please...");
      String name = sc.nextLine();

      System.out.println("The read values: " + input + ", " + name);

      sc.close();
   }
}

4 个答案:

答案 0 :(得分:0)

如果您之后直接从控制台阅读,请在println语句后面添加一个System.out.flush()命令

答案 1 :(得分:0)

只需使用:

  Scanner sc = new Scanner(System.in);      
  System.out.print ("Enter your name please... ");
  String name = sc.nextLine();
  System.out.print ("Enter an integer please... ");
  int input = sc.nextInt();
  System.out.println ("The read values: " + input + ", " + name);

我刚刚移动了名称下方的整数,并对其进行了修复。哈哈哈

答案 2 :(得分:0)

当你引入一个数字时按enter键,nextInt()使用数字,但输入(\ n)仍保持缓冲。在此之后,如果再次调用nextInt(),Java会尝试将\n转换为给出NumberFormatException的数字,但如果您调用nextLine(),则会将输入读为空字符串< / p>

这里有更好的解释和一个解决方案

Can't use Scanner.nextInt() and Scanner.nextLine() together

答案 3 :(得分:0)

这似乎与我安装VirtualBox有关。无论我尝试什么,问题仍然存在。即使我尝试只读取一个整数,它也会要求我输入两个值。

感谢所有试图提供帮助的人,我学到了很多,只是试图调试它。