我正在制作一个修复后计算器,我无法弄清楚如何在没有等号的情况下执行功能。例如,“a = 3 5 +”将打印8,但“3 5 +”将使程序崩溃。这是我到目前为止所拥有的
if (values.peek().matches("[a-z]") || values.search("=") > -1 )
{
String a = values.pop();
values.pop();
double answer = compute(values);
memory.put(a, answer);
var.add(a);
System.out.println(" " + answer);
}
else
{
double answer = compute(values);
System.out.println(answer);
}
答案 0 :(得分:0)
我猜你的输入解析有一些问题。如果要按空格分割输入,请尝试以下方式:
String str = " 3 5 + ";
String[] splited = str.split("\\s+");
受到this question的第一个答案的启发: