尝试编写Java方法将中缀方程转换为后缀

时间:2017-06-14 01:21:16

标签: java data-structures

我试图让这个方法返回一个后缀方程(字符串)。优先级方法需要一个char,我可以更改它。有没有我想让这个工作?首先我试图采用中缀(第44行),并为每次迭代引入一个字符的中缀,并把它放到后缀。我知道substring是一个字符串方法,item变量需要是char。我可以做到这一点,还是有人有任何指针?

 public static String convertToPostfix(String infix) {
 ArrayStack operator = new ArrayStack();
 char item;
 String postfix;
 Object top;

 for(int i = 0; infix.length() >= 0; i++){
  item = infix.substring(i,i);  //creates string item as one character string starting with index 0.


  if (item.toString().matches("[0..9]")){
    postfix.concat(item.toString());        //appends operand to postfix 
  }

  else if (item = "("){
     operator.push(item);
  }
  else if (item = ")"){
     top = operator.pop();
     while(top != "("){
        postfix.concat("(");
        top = operator.pop();
     }
  }
  else {
     while(!operator.isEmpty()){
        top = operator.peek();

        if(Postfix.getPrecedence(item.charValue()) <= top){
           postfix.concat(item);
           operator.pop();
        }
        else {
           break;   
        }
       operator.push(item);

     } 
  }


 }

while(!operator.isEmpty()){
  top = operator.pop();
  postfix.concat(item);

  } 

  return postfix;







}

0 个答案:

没有答案