import java.util.Stack;
import javax.swing.text.ChangedCharSetException;
public class T {
public static void main(String[] args){
System.out.print("请输入算式:");
Scanner sc=new Scanner(System.in);
String formula=sc.nextLine();
System.out.print(change(formula));
}
public static Stack<String> change(String expression) {
Stack<Character> s1=new Stack<>();s1.push('#');
Stack<String> s2=new Stack<>();
char[] chars=expression.toCharArray();
StringBuffer s=new StringBuffer();
for(int i=0;i<chars.length;i++) {
if(Character.isDigit(chars[i])) {
while(Character.isDigit(chars[i])||chars[i]=='.') {
s.append(chars[i]);
}s2.push(s.toString());
}
else {
switch(chars[i]){
case'(':s1.push(chars[i]);break;
case')':while(!s1.peek().equals('(')){
s2.push(s1.pop().toString());
}
s1.pop();break;
case'+':
case'-':
case'/':
case'*':;
s1.push(chars[i]);
if(get(chars[i+1])>get(chars[i])) {
s1.push(chars[i+1]);
}else {
s2.push(s1.peek().toString());
}
}
}
}return s2;
}
public static int get(char c)
{ int m=0;
switch(c) {
case'+':
case'-':m=1;break;
case'/':
case'*':m=2;break;
case'(':
case')':m=0;break;
case'#':m=-1;break;}
return m;
}
}
慕仙8527320
慕斯4360584
慕斯4360584
慕慕5436299
相关分类