Java 解析数学二维函数模式

Java 解析数学二维函数模式,java,parsing,Java,Parsing,我一直在考虑一个程序,它计算输入时定义的函数的定积分 可接受的输入是“+,-,*,^”运算符和“Sin,Cos,Tg,Ctg,Log”三角函数的组合,例如: 2*x^2+x^(对数(5+Sin(x)+1)*x^5)/(Tg(对数(x))) 唯一困难的是解析输入字符串;该方法预计为产品: public static double customFunc(double x,...) { return <client input>; } 所以,我完全不知道该怎么办。。。你有什么建

我一直在考虑一个程序,它计算输入时定义的函数的定积分

可接受的输入是“+,-,*,^”运算符和“Sin,Cos,Tg,Ctg,Log”三角函数的组合,例如:

2*x^2+x^(对数(5+Sin(x)+1)*x^5)/(Tg(对数(x)))

唯一困难的是解析输入字符串;该方法预计为产品:

public static double customFunc(double x,...)
{
     return <client input>;
}

所以,我完全不知道该怎么办。。。你有什么建议、样本、想法或解决方案吗

我想我可以给你一些想法

您必须解析函数字符串,并分离出运算符

可以使用映射将操作符映射到Java函数

+ to +
Sin to Math.sin(x)
etc.
然后,您将在StringBuilder中构造执行计算的Java行


不知何故,您会执行您创建的Java行。这是我不知道该怎么做的部分。

如果您想创建自己的解析器,我真的建议您。这是一个很棒的解析工具,特别是如果你想有自己的逻辑围绕它。还有一组非常有用的教程视频。

这会给你很多提示:你不也需要为x输入一个范围吗?@GilbertLeBlanc否,因为customFunc将作为“指针”传递给一个积分函数,该函数自己指定范围。
+ to +
Sin to Math.sin(x)
etc.