首页 > 解决方案 > 想编程计算器,想把String变成真正的算子

问题描述

我想编写一个简单的计算器并且已经得到了一些代码。但是现在我想将我得到的字符串更改为运算符。例如:

我的输入是:“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 的结果

标签: java

解决方案


您要做的是解析单个字符串并将其转换为数学表达式,然后您想要解析并输出结果。为此,您需要定义一种“语言”并有效地编写解释器。这不是微不足道的,特别是如果你想用括号等来扩展你的语法。

您必须回答的主要问题是,您是想使用解决方案(因为您不是第一个尝试这样做的人),还是您想自己实际编写。有一些“简单”的解决方案,例如,您可以在 Java 中实例化一个 javascript 引擎并输入您的字符串,但这将允许更多,甚至可能是您不想要的东西。或者您可以使用已经执行此操作的库。这个线程已经用多个有趣的答案回答了一个类似的问题: 如何评估以字符串形式给出的数学表达式?

否则,您可能会因为工作量大而感到惊讶,因为您正在投入其中。:)


推荐阅读