使用nextInt和nextLine()时出现问题

这不是让我把我的名字,但它的年龄是否正常。 我知道我可以改变陈述的顺序,但还有另一种方法吗?

import java.util.Scanner; public class ScannerErr2 { public static void main(String [] args) { Scanner keyboard= new Scanner(System.in); String name; int age; System.out.print("Enter your age : "); age= keyboard.nextInt(); System.out.print("Enter your name: "); name= keyboard.nextLine(); System.out.println("Age : "+age); System.out.println("Name: "+name); } } 

您的问题是,下一个int不会考虑您的名称部分的输入中的新行字符。 因此,名称将返回为空白。

您可以通过两种方式更改代码:

 System.out.print("Enter your age : "); age = keyboard.nextInt(); keyboard.nextLine(); System.out.print("Enter your name: "); name = keyboard.nextLine(); 

要么

 System.out.print("Enter your age : "); age = Integer.parseInt(keyboard.nextLine().trim()); System.out.print("Enter your name: "); name = keyboard.nextLine(); 

我个人喜欢第二种方式。