最简单的制作计算器的方法?

时间:2017-09-22 22:24:00

标签: java math recursion floating-point calculator

我已经阅读了其他有关此问题的问题,而且他们并不像我希望这个讨论那样普遍。

我的问题如下所述:制作基本计算器最简单的方法是什么,比如优先考虑其操作,甚至是括号?

每当我尝试这样做时,我的代码就会变得比我通常期望的更复杂。

我通常的做法是获取计算请求的字符串输入,然后对其进行操作。这会产生各种各样的问题,因为我现在必须解决使用字符串而不是某种可执行Java代码的事实。

这是我最终试图做的事情,无论我最终使用哪种语言:

  1. 读取输入字符串。
  2. 将字符串拆分为数字,括号和运算符。
  3. 将每个数字字符串解释为带有类整数的数字。
  4. 从每个操作创建一个映射到计算它的方法。用它来解释每个运算符。然后在其输入上调用该方法。
  5. 使用多个组件创建递归函数。首先是空字符串。第二,单个角色。三,单一操作。第四,优先处理没有括号。第五,遍历每组闭合括号中的所有评估集,在必要时递归调用函数本身,直到返回单个常量。
  6. 另外,出于Java的目的,我该如何调用方法?每当我尝试这样做时,我似乎遇到了问题。如果我想调用添加方法add并输入数字24,请从另一个名为Arithmetic的类中提取,我该怎么做呢?主要是,我不确定Java的具体案例的第一个输入是什么。

    add.invoke(__, {1, 1});
    

    我可能正在调用invoke方法开始

    对于那些试图构建计算器的人来说,每个人都有这么多的复杂性吗?有没有更简单的方法来解决这个问题?

    诚实地说,这里的任何讨论都会很棒。

    编辑。在尝试执行此操作时,我将澄清我是如何亲自定义add函数的:

    public class Arithmetic {
    ...
    
    public static float add(float x, float y) {
        return x+y;
    }
    
    ...
    }
    

0 个答案:

没有答案