我正在尝试编写一个程序来评估后缀表达式。我的想法是叠加操作数,然后在操作员出现时弹出必要的操作数。我试图检查输入是操作数是操作符还是操作数,但是这个开始代码的唯一“if”语句在||的第一个实例处返回“error:illegal start of expression”。我是否缺少转义字符或其他东西?提前致谢。非法开始表达式java运算符
public class Evaluate{
char input[] = new char[50];
Stack operands = new Stack();
public string Evaulate(string input){
for (int k = 0; input[k] != null; k++){
char symb = input.charAt[k];
if (symb != (+ || - || * ||/|| $){
operands.push(symb);
}
}
}
}
不应该是'('+'||' - '||'*'||'/'||'$')'。但是你也不能这样做。你必须每次比较一下'symb!='+'|| symb!='-'...' –
你需要把它们当作字符,而不是文字操作符。把它们全部放在单引号中。你需要对每一个进行不同的比较,就像@ redflar3所说的那样。 –
你的代码中有太多错误,你可以考虑阅读一些Java的介绍。 – Roman