第九周(11.11-11.17)----結對專案----計算字尾表示式

YangXiaomoo發表於2016-11-13

  為了計算由字首表示式轉換過來的字尾表示式,我編寫了方法public int countback(String src)。

  思想是把字尾表示式轉型成字串,用該方法接受字串後,將src[i]依次存如棧中。

    如果src[i]不是操作符就直接入棧;

    如果是操作符就取棧頂前兩個元素進行運算,並把結果入棧。

    最後棧頂元素的值就是表示式的值。

  這裡的計算我編寫了public int count(String a, String b, String e),用以返回計算結果。

public int countback(String src):

 1 public int countback(String src) {  
 2             Stack<String> stack = new Stack<String>();  
 3             for (int i = 0; i < src.length(); i++) {  
 4                 String foo = src.charAt(i) + "";  
 5                 if (!isoperator(foo)) {  
 6                     stack.push(foo);  
 7                 } else {//如果是運算子  
 8                     // 取棧頂兩元素進行計算,並將計算結果放入棧頂  
 9                     String a = stack.pop();  
10                     String b = stack.pop();  
11                     int temp = count(b, a, foo);  
12                     stack.push(temp + "");  
13       
14                 }  
15             }  
16             return Integer.parseInt(stack.pop());//最後棧頂元素的值就是表示式的值了  
17         }  

public int count(String a, String b, String e):

public int count(String a, String b, String e) {  
        int temp1 = Integer.parseInt(a);  
        int temp2 = Integer.parseInt(b);  
        if ("+".equals(e)) {  
            return temp1 + temp2;  
        } else if ("-".equals(e)) {  
            return temp1 - temp2;  
        } else if ("*".equals(e)) {  
            return temp1 * temp2;  
        } else {  
            return temp1 / temp2;  
        }  
    } 
}

最終執行結果如下:

 

  

相關文章