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