java - 将String转换为可执行的数学表达式。
本文介绍了java - 将String转换为可执行的数学表达式。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
想用Java写一个简单的几何画板,可以输入函数然后利用这个函数画图像。
虽然可以用javax.Script包直接运算4+3,还可以
str = str.replaceAll("X",String.valueOf(getX()));
但是对于方便的几次方运算符^转义方面根本搞不清楚(正则表达式不太会用)。
我得想法是,能不能直接将输入的表达式,例如x^2+4,作为一个函数对象function保存起来。
function fun1 = new function("x^2+4");
int i = fun1(3);
//i=13
我用Script的辣鸡代码:
代码烂忍忍吧……我是初学者。
谢!
解决方案
把表达始中的xyz替换为数字
"x*5+x*3".replace('x', '6')
计算2的算数表达式
一般就是什么波兰式,逆波兰式,中缀表达式...的解析表达式再计算,算法都忘完了
还有就是你所的用js引擎来计算,真么想到还可以这么玩。对+-*/()的运算比较方便,但是涉及到平方,正弦余弦的就要转换成js里面的方法
String str = "x^2+4";
str = str.replaceAll("x\\^2", "Math.pow(9,2)");//假设x=9
System.out.println(engine.eval(str));
这篇关于java - 将String转换为可执行的数学表达式。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文