简单数学的正则表达式Java中的方程解析器

时间:2017-09-30 21:56:14

标签: java regex math

目前正在学习Java,并试图解析有效输入的数学方程式:

例如,用户必须以以下格式输入整数:

操作数操作员操作数

按照特定的顺序,然后程序需要能够判断输入是否采用该形式,然后计算出简单的等式。

一个例子是:

4 * 8,结果为32

程序也会拒绝像45.6 * 0.3或45 + 3/4

这样的东西

为了使其正常工作,我是否必须使用正则表达式或if循环的其他方法?

2 个答案:

答案 0 :(得分:2)

一方面可以使用RegEx,去掉无效输入,另一方面可以使用组来提取操作数和操作并应用数学

/^(\\d+)\\s*([+\\-*\\/])\\s*(\\d+)$/

修改

正如Rory Daulton指出的那样,已签名的整数被排除在上述RegEx之外,因此应该使用下面的整数

/^([+\\-]?\\d+)\\s*([+\\-*\\/])\\s*([+\\-]?\\d+)$/

答案 1 :(得分:0)

看看: https://stackoverflow.com/a/11009403/8701820

^([-+/*]\d+(\.\d+)?)*

您也可以查看此网站:https://regex101.com