如何计算一行中的用户输入: 23.5 +3 *23?我尝试了许多方法来遍历输入,但找不到任何有效的方法,将数字与给定的运算符分开。可以忽略PEMDAS。
发布于 2021-04-26 04:13:44
对于一些简单的评估,您可以使用java脚本引擎。
示例:
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
public class HelloWorld{
public static void main(String []args) throws Exception{
ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
Double result = (Double) engine.eval("23.5 + 3 *23");
System.out.println(result);
}
}但是用户也可以执行所有类型的java代码,你应该检查你的表达式是否是一个数学公式。
更多的解决方案可以在here找到。
https://stackoverflow.com/questions/67257408
复制相似问题