想要对计算器进行编程,想要将String更改为实运算符

时间:2019-04-08 08:44:08

标签: java

我想编写一个简单的计算器,并且已经有了一些代码。但是现在我想将到达那里的String更改为Operator。例如:

我的输入是:“ 1,5-1,1 + 3,2 =” 现在,我有一个双精度数组和一个字符串数组。 因此,在此之后,我想将其放在一起,以便它计算出完成的任务。

double result = double[0] String[0] double[1] ....

希望您能在此提供帮助,我对我的语法等表示歉意,英语不是我的主要语言。

import java.util.*;
public class calculator 
{

       public static void main(String[] args) 
       {
             int a = 0;
             int b = 0;
             double[] zahl;
             zahl = new double[10];
             double ergebnis;
             String[] zeichen;
             zeichen = new String[10];

             Scanner input = new Scanner (System.in);

             while (input.hasNext())
             {
                    if (input.hasNextDouble())
                    {
                           zahl[a] = input.nextDouble();
                           a++;
                    }
                    else if (input.hasNext())
                    {
                           zeichen[b] = input.next();
                           if (zeichen.equals ("=")) break;
                           b++;
                    }

             }
             input.close();




       }

}

如果我输入:“ 1,5 + 2,3 * 4,2 =”我想得到的结果是在行前加点,而没有.math

1 个答案:

答案 0 :(得分:1)

您要做的是解析单个String并将其转换为数学表达式,然后您要解析并输出结果。为此,您需要定义“语言”并有效地编写解释器。这并非易事,特别是如果您想使用方括号等扩展语法。

您必须回答的主要问题是,是否要使用解决方案(因为您不是尝试此操作的第一人),或者您是否想亲自编写此解决方案。 有“简单”的解决方案,例如,您可以实例化Java中的javascript引擎并输入您的字符串,但这将允许更多甚至是您不需要的东西。或者,您可以使用已经执行此操作的库。这个主题已经用多个有趣的答案回答了一个类似的问题: How to evaluate a math expression given in string form?

否则,关于工作量,您可能会感到惊讶。 :)