我正在尝试从括号中拆分一个简单的数学表达式
例如:(8+(3(2+3)(4-1)))
分隔成小表达式如(2+3), (4-1), (3*5*3), and finally (8+45)
。
我尝试在这里查看Splitting an expression,但由于它是在 python 中,我不知道如何在 Java 中实现它。
有人可以帮帮我吗..
我正在尝试从括号中拆分一个简单的数学表达式
例如:(8+(3(2+3)(4-1)))
分隔成小表达式如(2+3), (4-1), (3*5*3), and finally (8+45)
。
我尝试在这里查看Splitting an expression,但由于它是在 python 中,我不知道如何在 Java 中实现它。
有人可以帮帮我吗..
我认为 dijkstra 的调车码算法可能会对您有所帮助,其目的是解决中缀表示法的表达式。您可以获取中间结果来获取您正在寻找的表达式。
http://en.wikipedia.org/wiki/Shunting-yard_algorithm
包含 C 示例代码,这应该对您有所帮助,因为它类似于 Java。
只是一个建议使用算术表达式树来解决这个问题。我已经使用 C# 完成了此操作,如果您有兴趣,我可以提供方法