Java 将第二个输入语句添加到代码后出错

Java 将第二个输入语句添加到代码后出错,java,input,user-input,next,Java,Input,User Input,Next,代码1 代码2 在这里,我试图同时获得姓名和年龄。这个代码取名字,在我输入名字后,它打印错误,不要求年龄 Scanner input = new Scanner(System.in); System.out.println("Enter Name : "); String name = input.nextLine(); System.out.println("String name : " + name); System.out.println(&quo

代码1

代码2

在这里,我试图同时获得姓名和年龄。这个代码取名字,在我输入名字后,它打印错误,不要求年龄

Scanner input = new Scanner(System.in);
System.out.println("Enter Name : ");
String name = input.nextLine();
System.out.println("String name : " + name);
System.out.println("Enter age : ");
int age = input.nextInt();

问题是nextLine正在阅读所有内容,因此nextLine没有任何内容可阅读。你想做的是

1.读取输入

2.被某物分割(例如空格)

3.手动解析文本

System.out.println("Enter Name and age : ");
String name = input.nextLine();
int age = input.nextInt();//error may be over here

System.out.println("String name : " + name);
System.out.println("String name : " + age);
publicstaticvoidmain(字符串[]args){
//尝试使用资源,使其关闭扫描仪。
try(扫描仪输入=新扫描仪(System.in);){
System.out.println(“输入姓名和年龄:”);
//读取输入,按空格分割。
字符串[]text=input.nextLine().split(“”);
字符串名称=”;
//读取值,但不要读取最后一个值。
for(int i=0;i
既然它看起来很好,您是如何输入的,又是什么输入的?它会打印什么错误?欢迎使用SO!如果你能告诉我们你到底犯了什么错误,这对我们也会有帮助。凯文比我强,哈哈
public static void main(String[] args) {
    // Try-with-resources so its closes the scanner.
    try (Scanner input = new Scanner(System.in);) {

        System.out.println("Enter Name and age : ");
        // Read input, split by spaces.
        String[] text = input.nextLine().split(" ");
        String name = "";
        // Read the values, but not the last one.
        for (int i = 0; i < text.length - 1; i++) {
            name += text[i] + " ";
        }

        try {
            // Take the last one and convert it to int.
            int age = Integer.parseInt(text[text.length - 1]);
            // Print if everything was ok.
            System.out.println("String name : " + name);
            System.out.println("String name : " + age);

        } catch (NumberFormatException e) {
            // The last field was not a number.
            System.err.println("Age has to be a number");
        }
    } // No catch propagate the exception.
}