在 Java 中一次输入不同的变量类型



我用C++做了一个计算器,我正在尝试用Java像镜像一样重新创建它。

有 2 个双变量(double adouble b )用于 2 个操作数和一个 char( char op ) 放入 if 循环,所以对于 instace 如果op = '+'它将cout << a << op << b << "=" << a+b << endl;

所以我可以在控制台提示符下编写12+2,并将其视为输出12+2=14

现在在 Java 中,我必须每行一个:

    Scanner Scin = new Scanner(System.in);
        System.out.println("OPERATION>");
        a = Scin.nextDouble();
        op = Scin.next().charAt(0);
        b = Scin.nextDouble();

所以我必须写一个值,每次都按回车键。我怎样才能像C++一样一次性输入所有内容,并且可能在一行代码中完成?提前谢谢。

你不能使用 Scanner 一次读入多个变量,你必须一次读取一个变量。但是,有一种很好的方法可以让输入发生,而无需每次都按回车键或输入空格:设置不同的分隔符!默认分隔符是空格(包括换行符),但您也可以将其设置为正则表达式中的单词边界b

Scanner in = new Scanner(System.in).useDelimiter("\b|\s+");

现在你可以读12+2,它会把next调用拆分到你想要的地方,或者你可以继续按回车键,或者你可以在值之间放置空格。您的选择:D

要在之后将分隔符恢复正常,请使用 in.reset()

编辑:要防止单词边界在小数点处拆分输入,请使用以下模式:

(?<!\.)\b(?!\.)|\s+

相关内容

  • 没有找到相关文章