java去哪儿笔试解决方案四(三)

2014-11-24 01:42:51 · 作者: · 浏览: 7
();
while(iter.hasNext()){
System.out.print(iter.next());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}


//计算

public class Test4 {




public static void main(String []args){
MyStack ms = new MyStack();
String str = "1+(5-3)*5/5";
char chr[] = str.toCharArray();
ExpressConvert ec = new ExpressConvert();
List list = ec.toSuffixExpression(chr);
Iterator iter = list.iterator();
while(iter.hasNext()){
Character c = iter.next();
try {
if(c=='+' || c == '-' || c == '*' || c == '/'){

int a = Integer.parseInt(ms.pop().toString());
int b = Integer.parseInt(ms.pop().toString());


int n = 0;
switch(c){

case '+':n=b+a;break;
case '-':n=b-a;break;
case '*':n=b*a;break;
case '/':n=b/a;break;
}

ms.push(n);
}else{
ms.push(c);
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(ms.getSize());
try {
System.out.println(ms.pop());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}