【问题标题】:How to calculate string 2*2+6/3+6如何计算字符串 2*2+6/3+6
【发布时间】:2017-06-14 17:39:16
【问题描述】:

我想做计算器。我不知道拆分字符串并计算结果。是否有任何算法或一些简单的方法来获得结果?我已经搜索过了。但它只告诉中缀表达式。

【问题讨论】:

  • 请添加您已经尝试过的内容以及我们如何为您提供帮助。代码示例可能会有所帮助。听起来有点像你想让我们做你的功课

标签: java android algorithm


【解决方案1】:

使用外部库

我在 Google 上搜索了“用于计算字符串中数学表达式的 android 库”这个词,第一个结果是:http://mathparser.org/

如果您转到该链接并向下滚动一点,它实际上会显示其工作原理的动画。似乎还有很多教程。


创建自己的算法

虽然在这种情况下使用外部库确实似乎是最佳选择,但如果您需要自己开发算法,那么使用 BODMAS(或 PEMDAS,取决于您来自哪里)将是至关重要的。但是,至少在您的情况下,不需要括号和命令。

您的算法最初可以针对所有除法情况迭代字符串,例如找到字符'/',然后乘以'*',然后加'+',最后减'-'。

对于每种情况,操作数都是运算符左右两侧的数字。然后用整体表达式中的计算替换立即表达式。

所以你的递归风格算法的步骤可能如下所示:

  • 2*2+6/3+6
  • 2*2+2+6
  • 4+2+6
  • 6+6
  • 12

你需要做的一些事情:

  • 将字符转换为预期的整数(提示:减去 '0' 或 48)
  • 考虑您的操作数是否会超过一个字符,例如10(查看子字符串)
  • 可能考虑提高性能
    例如4+2+6 可以一步计算,而不是两个

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-27
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多