我对如何执行诸如“5 + 10 * 2 / 5”之类的语句有些困惑。我是 JAVA 的新手,对如何去做一无所知。有任何想法吗?
我需要编写一个采用参数表达式的方法。eval("6*3+2"); 所以它必须将它们作为字符串接收并将它们转换为双精度
我对如何执行诸如“5 + 10 * 2 / 5”之类的语句有些困惑。我是 JAVA 的新手,对如何去做一无所知。有任何想法吗?
我需要编写一个采用参数表达式的方法。eval("6*3+2"); 所以它必须将它们作为字符串接收并将它们转换为双精度
如果我们可以假设每个标记都是空格分隔的并且它是非波兰符号,那么这就足够了:
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
我会把剩下的留作你的家庭作业练习。
did not get what you want exactly, but try this
int result = 0;
int val_a=5;
int val_b=10;
int val_c=2;
now to print the result;
int result = (your calculation here);
systm.out.println("result = "+result);