Java String完成数学求和
在Java中,我目前正在尝试寻找一种方法来进行数学求和,方法是在JTextField中输入文本,将其放入String,然后将其转换为int并求解。但是问题是,我不想简单地在字符串中输入
数字 ,而是实际的 总和, 包括加法,减法等。
目前,它只接受做类似的事情,1将从字符串转换为int,但是当我执行‘1 + 1’甚至只是‘1+’时,它到处都会引发异常,因为’+’不是数字。
我已经知道这不会起作用,因为int仅允许数字。
有什么方法可以安全地在文本字段中键入一个完整的总和,然后以某种方式将其转换为int吗?就像输入7-2 * 5,然后将答案保存在int一样?
谢谢。
回答:
您可以使用JavaScript
引擎:
ScriptEngineManager mgr = new ScriptEngineManager();ScriptEngine engine = mgr.getEngineByName("JavaScript");
String expression = textField.getText();
System.out.println(engine.eval(expression));
您现在所要做的就是允许 犯罪,cos,棕褐色 这样的事情:
ScriptEngineManager mgr = new ScriptEngineManager();ScriptEngine engine = mgr.getEngineByName("JavaScript");
String expression = textField.getText();
// Between here...
expression = expression.
replace("sin", "Math.sin").
replace("cos", "Math.cos").
replace("tan", "Math.tan").
replace("sqrt", "Math.sqrt").
replace("log", "Math.log").
replace("pi", "Math.PI");
// And so on...
System.out.println(engine.eval(foo));
因此,您可以执行以下操作:
5 + 5 - 2 / 5 + sin(55) - log(20)
任何你想要的。
以上是 Java String完成数学求和 的全部内容, 来源链接: utcz.com/qa/412021.html