将第二个输入语句添加到代码后出错 [关闭]

Posted

技术标签:

【中文标题】将第二个输入语句添加到代码后出错 [关闭]【英文标题】:Error after adding second input statement to code [closed] 【发布时间】:2020-07-08 04:41:21 【问题描述】:

code_1

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();

code_2

在这里,我尝试同时获取姓名和年龄。此代码采用名称,在我输入名称后,它会打印错误并且不询问年龄...

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);

【问题讨论】:

看起来不错,您提供的输入方式和输入方式是什么 打印什么错误? 欢迎来到 SO!如果您能准确地告诉我们您遇到了什么错误,这也会对我们有所帮助。 凯文打败了我,哈哈 【参考方案1】:

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

1.读取输入

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

3.手动解析文本。

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.

【讨论】:

以上是关于将第二个输入语句添加到代码后出错 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将第二个功能添加到单个按钮

正确地将第二个动态模板添加到 Gatsby/NetlifyCMS - 我哪里出错了?

如何将第二个viewcontroller文本字段值传递给第一个viewcontroller数组并在swift4中点击按钮时关闭

c ++ boost线程问题[关闭]

添加 3 个节点时,Storm Supervisor 未启动 [关闭]

按下保存按钮pyqt5后关闭第二个小部件