我试图让这个方法返回一个后缀方程(字符串)。优先级方法需要一个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;
}