目前正在学习Java,并试图解析有效输入的数学方程式:
例如,用户必须以以下格式输入整数:
操作数操作员操作数
按照特定的顺序,然后程序需要能够判断输入是否采用该形式,然后计算出简单的等式。
一个例子是:
4 * 8,结果为32
程序也会拒绝像45.6 * 0.3或45 + 3/4
这样的东西为了使其正常工作,我是否必须使用正则表达式或if循环的其他方法?
答案 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