一个逆波兰式求值的问题,请高手指点
BeenZ 2006-06-16 05:31:25 import java.util.*;
class Houzhui{
String in;
String out;
public boolean isP(char d){
return (d=='+'||d=='-'||d=='*'||d=='/');
}
public boolean isS(char d){
return (d==' ');
}
public void jisuan(){
double a,b;
Stack s = new Stack();
char c;
StringTokenizer par=new StringTokenizer(in,"+-*/",true);
while(par.hasMoreTokens()){
String token=par.nextToken();
c=token.charAt(0);
if(isP(c)&&(token.length()==1)){
a=((Double)s.pop()).doubleValue();
b=((Double)s.pop()).doubleValue();
switch(c){
case'+':s.push(new Double(a+b));break;
case'-':s.push(new Double(a-b));break;
case'*':s.push(new Double(a*b));break;
case'/':s.push(new Double(a/b));break;
default:break;
}//end switch
}//end if
else if(isS(c)&&(token.length()==1)){
;
}
else s.push(Double.valueOf(token));
}
outPut("所求的值为"+s.pop());
}
public String outPut(String s){
return out=s;
}
public void setIn(String s){
in=s;
}
public String getOut(){
return out;
}
}
编译成功,运行时发生错误,请高手指点下错误在哪儿