java吧 关注:1,243,783贴子:12,716,983
  • 2回复贴,共1

{求指导}求高手,这是我的运行结果。想要正常的格式,求修改

只看楼主收藏回复





1楼2013-04-16 23:02回复

    import
    java.util.Scanner;
    import
    java.util.Stack;
    class PostfixEvaluator {
    private final char ADD = '+';
    private final char SUBTRACT = '-';
    private final char MULTIPLY = '*';
    private final char DIVIDE = '/';
    private Stack<Integer> stack;
    public PostfixEvaluator(){
    stack = new Stack<Integer>();
    }
    public int evaluate(String expr){
    int op1,op2,result=0;
    String token;
    String[] tokenizer = expr.split("\\s");
    for (int x = 0; x < tokenizer.length; x++){
    System.out.print(tokenizer[x]+" ");
    token = tokenizer[x];
    if(isOperator(token)){
    op2 = (stack.pop()).intValue();
    op1 = (stack.pop()).intValue();
    result = evalSingleOp
    (token.charAt(0),op1,op2);
    }else {
    stack.push(new Integer(Integer.parseInt(token)));
    }
    }
    return result;
    }
    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;
    break;
    }
    return result;
    }
    private boolean isOperator(String token) {
    return (token.equals("+")||token.equals("-")||
    token.equals("*")||token.equals("/"));
    }
    }
    public class Postfix {
    public static void main(String[] args) {
    String expression, again;
    int result;
    try {
    Scanner in = new Scanner(System.in);
    do {
    PostfixEvaluator evaluator = new PostfixEvaluator();
    System.out.println("Please enter a postfix
    expression:");
    expression = in.nextLine();
    result =
    evaluator.evaluate(expression);//
    System.out.println();
    System.out.println("The result evaluation:" + result);
    System.out.println("evalue the other expression【Y/N】?:");
    again = in.nextLine();
    if (again.equalsIgnoreCase("n")) {
    System.out.println("Exit");
    }
    System.out.println();
    } while (again.equalsIgnoreCase("y"));
    } catch (Exception e) {
    e.printStackTrace();
    System.out
    .println("Input exception,Please enter
    a correct expressiom.");
    }
    }
    }


    2楼2013-04-16 23:03
    回复
      就是想要输入 为 12+12
      而不是12 12 +
      弄不成。。。。求求求。。。本人渣渣一个啊


      3楼2013-04-16 23:04
      回复