逆波蘭表達(dá)式如何在Java項目中實現(xiàn)

本篇文章給大家分享的是有關(guān)逆波蘭表達(dá)式如何在Java項目中實現(xiàn),小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

于2013年成立成都創(chuàng)新互聯(lián)公司專注于”幫助中小企業(yè)+互聯(lián)網(wǎng)”, 也是目前成都地區(qū)具有實力的互聯(lián)網(wǎng)服務(wù)商。團(tuán)隊致力于為企業(yè)提供--站式網(wǎng)站建設(shè)、移動端應(yīng)用( H5手機(jī)營銷、成都app開發(fā)、微信開發(fā))、軟件開發(fā)、信息化解決方案等服務(wù)。

逆波蘭表達(dá)式

定義:傳統(tǒng)的四則運算被稱作是中綴表達(dá)式,即運算符實在兩個運算對象之間的。逆波蘭表達(dá)式被稱作是后綴表達(dá)式,表達(dá)式實在運算對象的后面。

逆波蘭表達(dá)式:

a+b ---> a,b,+
a+(b-c) ---> a,b,c,-,+
a+(b-c)*d ---> a,b,c,-,d,*,+
a+d*(b-c)--->a,d,b,c,-,*,+
a=1+3 ---> a=1,3 +

http=(smtp+http+telnet)/1024 寫成什么呢?
http=smtp,http,+,telnet,+,1024,/

用Java實現(xiàn)逆波蘭表達(dá)式

/**
 * 計算算數(shù)表達(dá)式的值
 * For example:
 * ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
 * ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6
 * @author zl
 * 思路:
 * 這個問題可以通過使用堆棧來解決。
 * (1)我們可以循環(huán)遍歷給定數(shù)組中的每個元素。
 * (2)當(dāng)它是一個數(shù)字,把它推到堆棧。
 * (3) 當(dāng)它是一個操作符時,從堆棧中彈出兩個數(shù)字,進(jìn)行計算,并推回結(jié)果。
 *
 */
public class EvaluateValueOfArithmeticExpression {
  private static void evoe(String[] strArr){
    String str = "+-*/";
    Stack<String> stack = new Stack<String>();
    //2.0遍歷數(shù)組中的每一個元素
    for(String s : strArr){
      if(!str.contains(s)){//如果是數(shù)字,放入棧中
        stack.push(s);
      }else{
        int a = Integer.valueOf(stack.pop());
        int b = Integer.valueOf(stack.pop());
        switch(s){
        case "+" :
          stack.push(String.valueOf(a+b));
          break;
        case "-" :
          stack.push(String.valueOf(b-a));
          break ;
        case "*" :
          stack.push(String.valueOf(a*b));
          break;
        case "/" :
          stack.push(String.valueOf(b/a));
          break ;
        }
      }
    }
    System.out.println(stack.pop());
  }
  public static void main(String[] args) {
    //1.0創(chuàng)建數(shù)組
    String [] strArr = { "0", "2", "-", "3", "+" };
    evoe(strArr);
  }

以上就是逆波蘭表達(dá)式如何在Java項目中實現(xiàn),小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前標(biāo)題:逆波蘭表達(dá)式如何在Java項目中實現(xiàn)
分享鏈接:http://muchs.cn/article2/gdegoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、定制網(wǎng)站網(wǎng)站設(shè)計、虛擬主機(jī)、搜索引擎優(yōu)化、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司