【发布时间】:2017-06-14 17:39:16
【问题描述】:
我想做计算器。我不知道拆分字符串并计算结果。是否有任何算法或一些简单的方法来获得结果?我已经搜索过了。但它只告诉中缀表达式。
【问题讨论】:
-
请添加您已经尝试过的内容以及我们如何为您提供帮助。代码示例可能会有所帮助。听起来有点像你想让我们做你的功课
我想做计算器。我不知道拆分字符串并计算结果。是否有任何算法或一些简单的方法来获得结果?我已经搜索过了。但它只告诉中缀表达式。
【问题讨论】:
我在 Google 上搜索了“用于计算字符串中数学表达式的 android 库”这个词,第一个结果是:http://mathparser.org/
如果您转到该链接并向下滚动一点,它实际上会显示其工作原理的动画。似乎还有很多教程。
虽然在这种情况下使用外部库确实似乎是最佳选择,但如果您需要自己开发算法,那么使用 BODMAS(或 PEMDAS,取决于您来自哪里)将是至关重要的。但是,至少在您的情况下,不需要括号和命令。
您的算法最初可以针对所有除法情况迭代字符串,例如找到字符'/',然后乘以'*',然后加'+',最后减'-'。
对于每种情况,操作数都是运算符左右两侧的数字。然后用整体表达式中的计算替换立即表达式。
所以你的递归风格算法的步骤可能如下所示:
你需要做的一些事情:
【讨论】: