java - 将String转换为可执行的数学表达式。

查看:1278
本文介绍了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的辣鸡代码:

代码烂忍忍吧……我是初学者。

谢!

解决方案

  1. 把表达始中的xyz替换为数字 "x*5+x*3".replace('x', '6')

  2. 计算2的算数表达式

一般就是什么波兰式,逆波兰式,中缀表达式...的解析表达式再计算,算法都忘完了

Java 计算数学表达式(字符串解析求值工具)

还有就是你所的用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆