数学表达式在JAVA中进行字符串解析

时间:2013-05-23 02:05:30

标签: java math expression

我对如何执行诸如“5 + 10 * 2/5”之类的陈述感到有些困惑。我是JAVA的新手,并没有丝毫关于如何去做。任何想法?

我需要编写一个在参数中使用表达式的方法。的eval( “6 * 3 + 2”);所以它必须将它们作为一个字符串并将它们转换为双重

2 个答案:

答案 0 :(得分:0)

如果我们可以假设每个标记都以空格分隔,并且它是non-Polish notation,这就足够了:

Queue<Integer> numerals = new Queue<Integer>();
Queue<String> operators = new Queue<String>();
String[] tokens = input.split(" ");    
int numeralIndex = 0;
for(String token:tokens)  
{
      if(numeralIndex %2 == 0)
      {
           numerals.enqueue(Integer.parseInt(token));  
      } else{  
           operators.enqueue(token);
      }  
      numeralIndex++;  
}    

现在你有了令牌,你需要将它们从队列中删除以重新组装你的初始计算。您还需要符号列表,以便正确绑定语句:

int runningTotal = 0;
if(operator.equals("+")  
{  
       runningTotal += (previous+current);  
}else if(operator.equals("-")  
{  
       runningTotal-=(previous-current);
}      //etc

我将剩下的作为你的家庭作业的练习。

答案 1 :(得分:-3)

没有得到你想要的东西,但试试这个

int result = 0;

int val_a = 5;

int val_b = 10;

int val_c = 2;

现在打印结果;

int result =(你的计算在这里);

systm.out.println(“result =”+ result);