我正在尝试制作一个将数学方程式传输到 Java BigDecimal 行的小工具。
例如:
A + B * C => A.add(B.multiply(C))
A / B + C => A.divide(B).add(C)
括号让事情变得很糟糕。
A - (B + C) / D => A.substract(B.add(C).divide(D))
A - (B * (C + D)) => A.substract(B.multiply(C.add(D)))
我的方法是递归地做。例如:A + B * C
1. convert( A + B * C )
2. A.add( convert (B * C) )
3. A.add(B.multiply(C))
支持的数学符号:+ - * / % ( )
我想知道是否有更好的方法来处理这个问题。
这种问题有名称吗?编译器?(对不起,如果不是,我从未对编译器做过任何工作。)提前致谢。