java - 停止读取 Java 中的标准输入

标签 java

下面的代码将为我提供我想要的输入数据类型(int、double 或 string),但是,当我运行代码时,它就像在执行之前需要另一个输入一样。我希望我走在正确的道路上。

Enter some stuff: 43
3
You have entered an integer: 43

直到我输入另一个字符(在本例中是 43 以下的 3)之前它不会运行。

感谢您的浏览。

    public static void main(String[] args) 
    {
        // variables

        Scanner in = new Scanner(System.in);
        String input;

        // Prompt user for stuff

        System.out.print ("Enter some stuff: ");

        // input stuff
        input = in.next();

        //determine and read type echo to use
        if (in.hasNextInt())
        {
        System.out.print ("You have entered an integer: "+ input);
        }
        else if (in.hasNextDouble())
        {
        System.out.print ("You have entered a double: "+ input);
        }
        else if (in.hasNextLine())
        {
        System.out.print ("You have entered a string: "+ input);
        }



    }

最佳答案

我会使用 trycatch 来找到正确的数据类型。不要使用多个输入,否则您将收到错误,只需使用 in.next() 一次,然后按如下方式处理值:

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String input;

    // Prompt user for stuff

    System.out.print ("Enter some stuff: ");

    // input stuff
    input = in.next();

    //determine and read type echo to use
    try {
        int v = Integer.parseInt(input);
        System.out.print ("You have entered an integer: " + input);
    } catch (NumberFormatException nfe1) {
        try {
            double v = Double.parseDouble(input);
            System.out.print ("You have entered a double: " + input);
        } catch (NumberFormatException nfe2) {
            System.out.print ("You have entered a string: " + input);
        }
    }
}

输出1:

Enter some stuff: 7
You have entered an integer: 7

输出2:

Enter some stuff: 3.0
You have entered a double: 3.0

输出3:

Enter some stuff: sfsdfasd
You have entered a string: sfsdfasd

关于java - 停止读取 Java 中的标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52902041/

相关文章:

java - Androidx java.lang.ClassNotFoundException : and android. view.InflateException:同时

java - java中的正则表达式更改出现变量的实例

java - 在 Scala 中将 Int32 表示为 4 个字节

java - Android 应用索引集成

java - 如何打印 .jsp 文件中来自 Java 类的变量?

java - Spring Reactive 与 MongoDB 因超过 1000 条记录而失败

java - 以正确的方式更新 jLabel 和 jTextField

java - 如何连接到plc并获取数据

java - InstantiationException.Software 在 Android 中突然崩溃

java - 使用 Java 和 iText 在 PDF 文件中插入附件