为什么在java中我们不能通过一个扫描程序对象获取用户输入int和string?

时间:2016-06-21 06:02:41

标签: java

我使用相同的对象调用扫描对象,我试图从用户获取一个int和一个字符串。

Scanner scan = new Scanner(System.in);
//for a int 
int first_value  = scan.nextInt();
System.out.println(first_value); 
//for a string
String  first_name = scan.nextLine();
System.out.println(first_name); 

这里控制台没有等待字符串但是如果我使用另一个对象那么它工作正常。

 Scanner insert = new Scanner(System.in);
 String name = insert.nextLine();

是否可以使用相同的Scanner对象获取int和string?

2 个答案:

答案 0 :(得分:2)

这是因为在读取int之后会留下new line字符,该字符由scan.nextLine消耗,并且它不会等待您的下一个输入。您需要在读取String之前使用它。

Scanner scan = new Scanner(System.in);
//for a int 
int first_value  = scan.nextInt();
scan.nextLine();
System.out.println(first_value); 
//for a string
String  first_name = scan.nextLine();
System.out.println(first_name)

答案 1 :(得分:0)

System.out.println("Enter Your Age");对象的用户输入之前使用System.out.println("Enter Your Name");Scanner

System.out.println("Enter your first name:");
String first_name = scan.nextLine();

System.out.println("Enter your age:");
int age = Integer.parseInt(scan.nextLine());
  

现在,您可以按住屏幕输入您的程序输入。