我在我的第一个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();
}
}
答案 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>
这里有更好的解释和一个解决方案
答案 3 :(得分:0)
这似乎与我安装VirtualBox有关。无论我尝试什么,问题仍然存在。即使我尝试只读取一个整数,它也会要求我输入两个值。
感谢所有试图提供帮助的人,我学到了很多,只是试图调试它。