我用C ++编写了一个计算器,我试图在Java中重新创建镜像。
2个操作数有2个双变量(double a
和double b
),而if(char op
)有一个if循环,所以对于{{1} {}}它会op = '+'
。
所以我可以在控制台提示符中写cout << a << op << b << "=" << a+b << endl;
并看12+2
作为输出。
现在在Java中我必须每行一个:
12+2=14
因此我必须每次都写一个值并按回车键。我怎样才能像C ++一样输入所有内容,也许可以在一行代码中完成?提前谢谢。
答案 0 :(得分:3)
您无法使用Scanner
一次读取多个变量,您必须一次读取一个变量。但是,有一种很好的方法可以让输入在没有每次输入或输入空格的情况下发生:设置不同的分隔符!默认分隔符是空格(包括换行符),但您也可以从正则表达式将其设置为单词边界\b
。
Scanner in = new Scanner(System.in).useDelimiter("\\b|\\s+");
现在,您可以阅读12+2
,它会将next
个电话分开,或者您可以继续按Enter键,或者您可以在值之间放置空格。您的选择:D
要将分隔符恢复为正常,请使用in.reset()
。
编辑:为了防止单词边界以小数点分割输入,请使用以下模式:
(?<!\\.)\\b(?!\\.)|\\s+