当前学习java,并试图解析有效输入的数学方程:
例如,用户必须以形式输入整数:
操作数操作员操作数
按照该特定顺序,该程序将需要能够分辨出输入是否为该形式,然后处理简单方程。
一个例子是:
4 * 8,结果将为32
该程序还将拒绝45.6 * 0.3或45 3/4
为此,我是否必须使用正则表达式或其他循环的其他方法?
您可以一方面使用Regex,摆脱无效的输入,另一方面使用组来提取操作数和操作,并应用数学
/^(\d+)\s*([+\-*\/])\s*(\d+)$/
编辑:
正如Rory Daulton所指出的那样,签名的整数被排除在上述正则义务中,因此应使用以下的整数
/^([+\-]?\d+)\s*([+\-*\/])\s*([+\-]?\d+)$/
看一下:https://stackoverflow.com/a/11009403/8701820
^([-+/*]d+(.d+)?)*
您还可以检查此网站:https://regex101.com