abcde/-f+java
填充下列代碼:linux
import java.util.Scanner; public class MyDCTester { public static void main (String[] args) { String expression, again; int result; try { Scanner in = new Scanner(System.in); do { MyDC evaluator = new MyDC(); System.out.println ("Enter a valid postfix expression: "); expression = in.nextLine(); result = evaluator.evaluate (expression); System.out.println(); System.out.println ("That expression equals " + result); System.out.print ("Evaluate another expression [Y/N]? "); again = in.nextLine(); System.out.println(); } while (again.equalsIgnoreCase("y")); } catch (Exception IOException) { System.out.println("Input exception reported"); } } } import java.util.StringTokenizer; import java.util.Stack; public class MyDC { /** constant for addition symbol */ private final char ADD = '+'; /** constant for subtraction symbol */ private final char SUBTRACT = '-'; /** constant for multiplication symbol */ private final char MULTIPLY = '*'; /** constant for division symbol */ private final char DIVIDE = '/'; /** the stack */ private Stack<Integer> stack; public MyDC() { stack = new Stack<Integer>(); } public int evaluate (String expr) { int op1, op2, result = 0; String token; StringTokenizer tokenizer = new StringTokenizer (expr); while (tokenizer.hasMoreTokens()) { token = tokenizer.nextToken(); **//若是是運算符,調用isOperator if () { //從棧中彈出操做數2 //從棧中彈出操做數1 //根據運算符和兩個操做數調用evalSingleOp計算result; //計算result入棧; } else//若是是操做數 //操做數入棧; }** return result; } private boolean isOperator (String token) { return ( token.equals("+") || token.equals("-") || token.equals("*") || token.equals("/") ); } private int evalSingleOp (char operation, int op1, int op2) { int result = 0; switch (operation) { case ADD: result = op1 + op2; break; case SUBTRACT: result = op1 - op2; break; case MULTIPLY: result = op1 * op2; break; case DIVIDE: result = op1 / op2; } return result; } }
填寫的代碼是:
//若是是運算符,調用isOperator
if ()
{
//從棧中彈出操做數2
//從棧中彈出操做數1
//根據運算符和兩個操做數調用evalSingleOp計算result;
//計算result入棧;
}
else//若是是操做數
//操做數入棧;
}git
//當輸入是運算符
調用isOperator方法片斷所輸入的是否爲運算符,是運算符則爲true,不是則爲false,當是運算符的時候進行出棧、運算、將結果進棧的操做express
根據提示信息和棧的基礎操做,從棧中彈出一個數字爲stack.pop(),並將此值賦給int a,post
根據所給的evalSingleOp對前兩個操做數進行加減乘除,並用charAt(0)方法取得字符串的運算符號,進行相應的運算。
lua