亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 開(kāi)發(fā) > Java > 正文

Java計(jì)算器核心算法代碼實(shí)現(xiàn)

2024-07-14 08:43:25
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在進(jìn)行一個(gè)表達(dá)式的計(jì)算時(shí),先將表達(dá)式分割成數(shù)字和字符串然后利用出入棧將分割后的表達(dá)式進(jìn)行中綴轉(zhuǎn)后綴,再將后綴表達(dá)式進(jìn)行計(jì)算得到結(jié)果(思想在上一篇寫(xiě)過(guò))現(xiàn)在貼下Java語(yǔ)言的代碼實(shí)現(xiàn)。(學(xué)習(xí)Java時(shí)間不長(zhǎng)所以可能會(huì)有很多不足的地方,我會(huì)改進(jìn)也歡迎大神可以給我一些意見(jiàn)和建議~謝謝啦)

我將這部分分成三個(gè)方法完成功能,并在getResult方法調(diào)用(getResult方法被主方法調(diào)用)

private String getResult(String str) {    //分割    String[] Str = segment(str);    //中綴轉(zhuǎn)后綴    String newStr = infToSuf(Str);    //后綴計(jì)算    String result = sufToRes(newStr);    return sufToRes(result);  }

1.字符串分割,為避免在TextView上顯示帶空格刪除時(shí)不方便而且顯示屏就那么大占地方,錄入時(shí)的字符串中沒(méi)有空格然后就手動(dòng)分割了

private static String[] segment(String str) {    String[] exp = new String[str.length()+1];    //找最近的索引并截取字符串    int l = str.length();    for(int i = 0;i < l+1;i++) {      int index;      int[] ind = new int[6];      ind[0] = str.indexOf('+');      ind[1] = str.indexOf('-');      ind[2] = str.indexOf('*');      ind[3] = str.indexOf('/');      ind[4] = str.indexOf('(');      ind[5] = str.indexOf(')');      if(ind[1] == 0) {        Arrays.sort(ind);        int t;        for(t = 0;t <6;t++) {          if(ind[t] >= 0)            break;        }        int r = ind[t+1];        exp[i] = str.substring(0,r);        i++;        exp[i] = str.substring(r,r+1);        str = str.substring(r+1);      }else if(((ind[1]-ind[4]) == 1) && (ind[4]==0)) {        Arrays.sort(ind);        int t ;        for(t = 0;t <6;t++) {          if(ind[t] >= 0)            break;        }        int r = ind[t+1];        exp[i] = str.substring(0,1);        i++;        exp[i] = str.substring(1,r+2);        i++;        exp[i] = str.substring(r+2,r+3);        str = str.substring(r+3);      }else {        Arrays.sort(ind);        int t;        for(t = 0;t <6;t++) {          if(ind[t] >= 0)            break;        }        if(t==6)          break;        index = ind[t];        if(index!=0) {          exp[i] = str.substring(0,index);          i++;        }        exp[i] = str.substring(index,index+1);        str = str.substring(index+1);      }    }    int j = 0;    int k = 0;    for(; exp[j]!=null ;j++){}    if(!exp[j-1].equals(")")) {      exp[j]=str;      str = "";      k = j;    }else {      k = j-1;    }    String[] expp = new String[k+1];    for(int t = 0; t < k+1;t++) {      expp[t] = exp[t];    }    return expp;    //System.out.println("分割的字符串:");  }

2.中綴轉(zhuǎn)后綴

private static String infToSuf(String[] exp) {    String newStrs = "";    //初始化棧    Stack<String> stack = new Stack<>();     /*           判斷并放入后綴表達(dá)式中:       for循環(huán)遍歷整個(gè)str進(jìn)行判斷           循環(huán)結(jié)束若棧不為空全部出棧     */    int l = exp.length;    for(int i = 0; i < l; i++) {      if ((stack.empty()) && (exp[i].equals("+") || exp[i].equals("-") || exp[i].equals("*") || exp[i].equals("/"))) {        stack.push(exp[i]);      } else if (exp[i].equals("(")) {        stack.push(exp[i]);      } else if (exp[i].equals("*") || exp[i].equals("/")) {        while (stack.peek().equals("*") || stack.peek().equals("/")) {          newStrs = newStrs.concat(stack.pop()+" ");          if(stack.isEmpty()) {            break;          }        }        stack.push(exp[i]);      } else if (exp[i].equals("+") || exp[i].equals("-")) {        while (!(stack.isEmpty())&&((stack.peek()).equals("*") || (stack.peek()).equals("/") || (stack.peek()).equals("+") || (stack.peek()).equals("-"))) {          newStrs = newStrs.concat(stack.pop()+" ");          if(stack.isEmpty()) {            break;          }        }        stack.push(exp[i]);      } else if (exp[i].equals(")")) {        int t = stack.search("(");        for (int k = 1; k < t; k++) {          newStrs = newStrs.concat(stack.pop()+" ");        }        String tstr = stack.pop();      } else {        newStrs = newStrs.concat(exp[i]+ " ");      }    }    while (!stack.empty()) {      if (!stack.peek().equals("(") || !stack.peek().equals(")")) {        newStrs = newStrs.concat(stack.pop()+" ");      } else if (stack.peek().equals("(") || stack.peek().equals(")")) {        String tstr = stack.pop();      }    }//   System.out.println("后綴:"+newStrs);    return newStrs;  }

3.后綴的計(jì)算

  private static String sufToRes(String sufStr) {    String[] exp = sufStr.split(" ");    Stack<String> stack = new Stack<>();    String Res = "";    for(int i = 0;i < exp.length; i++) {      if(!exp[i].equals("+") && !exp[i].equals("-") && !exp[i].equals("*") && !exp[i].equals("/")){        stack.push(exp[i]);      }else if(exp[i].equals("+")) {        BigDecimal b2 = new BigDecimal(stack.pop());        BigDecimal b1 = new BigDecimal(stack.pop());        BigDecimal b3 = b1.add(b2);        stack.push(b3.toString());      }else if(exp[i].equals("-")) {        BigDecimal b2 = new BigDecimal(stack.pop());        BigDecimal b1 = new BigDecimal(stack.pop());        BigDecimal b3 = b1.subtract(b2);        stack.push(b3.toString());      }else if(exp[i].equals("*")) {        BigDecimal b2 = new BigDecimal(stack.pop());        BigDecimal b1 = new BigDecimal(stack.pop());        BigDecimal b3 = new BigDecimal(0);        if(b1.compareTo(BigDecimal.ZERO)== 0|| b2.compareTo(BigDecimal.ZERO) == 0) {          b3 = BigDecimal.ZERO;        }else {          b3 = b1.multiply(b2);        }        stack.push(b3.toString());      }else if(exp[i].equals("/")){        BigDecimal b2 = new BigDecimal(stack.pop());        BigDecimal b1 = new BigDecimal(stack.pop());        BigDecimal b3 = new BigDecimal(0);        double d1 = b1.doubleValue();        double d2 = b2.doubleValue();        if(d1%d2 == 0){          b3 = (b1.divide(b2));          stack.push(b3.toString());        }else {          b3 = b1.divide(b2,10, RoundingMode.HALF_UP);          stack.push(b3.toString());        }      }    }    Res = stack.pop();    boolean flag = false;    for (int m = 0; m < Res.length() - 1;m++) {      if(Res.charAt(m) == '.'){        flag = true;      }    }    if(flag) {      for(int m = Res.length()-1;m >= 0;m--) {        if(Res.charAt(m) == '0'){        }else {          Res = Res.substring(0,m+1);          break;        }      }      if(Res.charAt(Res.length()-1) == '.') {        Res = Res.substring(0,Res.length()-1);      }    }    return Res;  }

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产美女被遭强高潮免费网站| 亚洲v国产v欧美v久久久久久| 91麻豆免费在线观看| 黑人精品欧美一区二区蜜桃| 国产又黄又爽视频| 99精品黄色片免费大全| 亚洲欧洲一级| 98视频精品全部国产| 日本精品久久久久久久| 久久人人97超碰精品888| 亚洲天堂成人在线视频| 久久经典视频| 日韩av在线电影网| 国产亚洲精品自在线观看| h视频免费观看| 国产精品一区二区精品| 美女被c出白浆| 91九色综合| 黄色激情网站| 亚洲三区视频| 国产精品揄拍500视频| 亚洲国产精品人久久电影| 欧美一区二区三区四区五区六区| 一本色道久久综合狠狠躁篇怎么玩| 无码精品一区二区三区在线播放| 国产91精品久久久久久| 色综合天天狠天天透天天伊人| 91久久极品少妇xxxxⅹ软件| 国产精品伊人| 99视频在线精品国自产拍免费观看| 国产精品丝袜白浆摸在线| 国产中文字幕在线免费观看| 337p粉嫩大胆色噜噜噜噜亚洲| 国产欧美日韩在线| 国产成人av免费观看| 韩国精品久久久| 欧美在线观看视频一区二区| aa级大片欧美三级| 黄色一级片在线观看| 欲求不满中文字幕| 亚洲精品欧美一区二区三区| 国产a级网站| 伊人久久大香线蕉综合网蜜芽| 成人在线国产视频| 国产成人精品免费看在线播放| av资源中文在线天堂| 国外成人免费视频| 很黄很黄激情成人| 久久久久久久久久97| 国产精品青草久久| 自拍av在线| 欧美aaa级| 国产香蕉在线视频| 国产大奶在线| 国产一在线精品一区在线观看| 能在线观看的av网站| 日韩少妇视频| 国产精品一码二码三码在线| 日韩精品一区二区三区外面| av免费观看一区二区| 亚洲伊人网站| 免费色片视频| 97人人做人人人难人人做| 国产精品欧美久久| 2020国产在线视频| 草草地址线路①屁屁影院成人| 日韩亚洲国产中文字幕欧美| 浴室偷拍美女洗澡456在线| 久久婷婷国产精品| 极品少妇xxxx偷拍精品少妇| 五月天丁香在线| 午夜欧美大片免费观看| 自慰无码一区二区三区| 欧洲美女网站| 国模叶桐国产精品一区| 国产日产在线观看| 天堂在线免费观看视频| 久久中文免费视频| 国产v片免费观看| 免费成人深夜夜行网站视频| 999久久久久久| 欧美日韩尤物久久| 日产精品久久久久久久| 欧美激情伊人电影| 国产xxx免费观看| 久久久全国免费视频| 2021亚洲天堂| 欧美一区第一页| 四虎国产精品成人免费影视| a片在线免费观看| 成人av电影观看| 欧亚精品中文字幕| 国产一区深夜福利| 外卖gayxxxxgay1| 九九热精彩视频| 理论片午午伦夜理片在线播放| 久久久久亚洲av成人片| 日韩电影网1区2区| 91精品人妻一区二区三区四区| 国产成人一区二区三区电影| 亚洲三级电影在线观看| 大胆人体一区| 欧美四级剧情无删版影片| 亚洲免费一区三区| 91亚色免费| 蜜桃在线一区二区| 国产精品理伦片| 中文一区在线观看| 精品国产二区三区| 最近中文字幕在线中文高清版| 外国精品视频在线观看| 精品久久久久久最新网址| 福利在线免费视频| 欧美日韩中文精品| 国产一区在线精品| 久久99精品国产99久久6尤物| 中文字幕中文字幕| 夜夜嗨av色一区二区不卡| 亚洲欧美清纯在线制服| 狠狠做深爱婷婷久久综合一区| 亚洲va电影大全| 亚洲视频在线免费看| 艳母动漫在线免费观看| 亚洲成人黄色av| 亚洲一区二区三区在线播放| 欧美日韩电影一区二区三区| 久久av在线看| 欧美激情 一区| 日韩一区二区三区四区视频| 国产精品久久久久久久电影| 伊色综合久久之综合久久| 五月天婷婷激情视频| 精品在线观看免费| 亚洲综合av一区二区三区| 中文字幕在线一区| 国产精品国模大尺度私拍| 亚洲黄页一区| 日本老太婆做爰视频| 91精品国产91热久久久做人人| 日韩欧美字幕| 91香蕉视频网址| 韩国一级黄色录像| 中文字幕免费精品| 欧美gvvideo网站| 国内视频一区| 麻豆国产精品| 久久国产成人精品国产成人亚洲| 久久er精品视频| 中文字幕 亚洲视频| 国产一二三精品| 欧美日韩亚洲另类| 日韩激情啪啪| 精品人妻一区二区色欲产成人| 日本大胆欧美人术艺术动态| 99riav视频在线观看| 在线观看日韩| 在线观看精品一区二区三区| 涩爱av在线播放一区二区| 成人日批视频| 日本中文字幕电影| 久草福利资源在线| 亚洲在线播放| 国产一区二区三区av在线| 久久婷婷国产综合精品青草| 国内久久久精品| 伊人久久一区二区| 国产精品久久久久久久久果冻传媒| 亚洲激情综合网| xxx电影网| 天堂av资源在线观看| 国产日韩一区二区三免费高清| 欧美一级本道电影免费专区| 免费电影网站在线视频观看福利| 色婷婷精品久久二区二区蜜臂av| 国产欧美一区二区三区在线观看视频| 日本高清xxxx| 日韩理论片久久| 免费中文字幕av| 99精品国自产在线| 天天看片激情网站| 91免费版网站入口| 亚洲xxx拳头交| 0608新视觉| www.黄色在线| 久草成人在线视频| 欧美激情视频给我| 丝袜美腿av在线| 国产乱码精品一区二区| 欧美影片第一页| 精品久久久网站| 亚洲欧美日本日韩| 久久亚洲风情| caoporm超碰国产精品| eeuss影院第1页在线| 最新在线你懂的| 欧美日韩五区| 丰满人妻一区二区三区四区| 欧美二三四区| 91久久青草| ww国产内射精品后入国产| 青草视频.com| 成人在线网址| 日本美女一级片| 久久精品国产免费| 久久天堂av综合合色蜜桃网| 欧美x0x0| 免费观看黄网站| 国产精品熟女久久久久久| www.国产亚洲| 免费观看成人毛片| 精品国产乱码久久久久久牛牛| 中文字幕日本一区二区| 最爽无遮挡行房视频在线| 久久久久久91香蕉国产| a级免费观看| 欧美极品jizzhd欧美仙踪林| 国产三级精品视频| 色呦哟—国产精品| 青娱乐国产91| 香蕉视频在线观看免费| 免费羞羞视频| 国产一在线精品一区在线观看| 国产精品久久久精品a级小说| 草草久视频在线观看电影资源| 中文在线资源新版官网| 精品3atv在线视频| 欧美喷水一区二区| 国产精品久久久久免费a∨大胸| 蜜桃一级网站.| 日韩中文字幕亚洲| 日本福利片免费看| 国产亚洲欧美日韩美女| 草草久久久无码国产专区| 一级毛片免费高清中文字幕久久网| 久久综合九色综合欧美狠狠| 三级短视频在线| 91久久久久国产一区二区| 亚洲自拍偷拍图区| 成人亚洲激情网| 欧美曰成人黄网| 久久夜色精品国产亚洲aⅴ| 一本一道波多野结衣一区二区| 日韩欧美二区| 日韩av在线一区二区三区| 国产精品aaaa| 男女交配网站| 欧美影视资讯| 久久人人97超碰人人澡爱香蕉| 老女人av在线| 欧美不卡高清一区二区三区| 国产精品久久久久久av下载红粉| 韩国专线一区二三区| 成人午夜激情影院| 男人天堂久久| 亚洲女厕所小便bbb| 一区二区三区欧洲区| 国产精品后入内射日本在线观看| 香蕉久久夜色精品国产使用方法| 久久免费手机视频| 成+人+亚洲+综合天堂| 亚洲精品鲁一鲁一区二区三区| 女人18毛片毛片毛片毛片区二| 美女尤物在线视频| 美女视频黄免费的久久| 国产一区二区三区乱码| 久久久精品国产**网站| 99视频精品全部免费在线视频| 亚洲一级Av无码毛片久久精品| 制服丝袜中文字幕在线| 九九久久久久久| 亚洲精品在线观看免费| 99久久久久免费精品国产| 国产欧美久久久久久久久| 亚洲一区二区三区四区五区中文| 2019日韩中文字幕mv| www.国产在线视频| yw视频在线观看| 男人操女人的视频在线观看欧美| 中文字幕一区二区人妻视频| 亚洲精品v日韩精品| 久久精品国产免费观看99| 欧美精品黑人猛交高潮| 日韩乱码在线视频| 中文字幕精品综合| 国产精品一级黄| 无码久久精品国产亚洲av影片| 日韩电影中文字幕| 久草在线视频网站| 成人aaaa| 一区在线电影| 99久久久久成人国产免费| 日本免费资源| 自拍偷拍第八页| 精人妻一区二区三区| 国产最新视频在线| 亚洲最新在线观看| 免费观看成人毛片| 成人一区二区三区| 亚洲性69xxxbbb| 91午夜视频在线观看| 成年人视频网站在线| 视频在线一区二区| 欧美色图一区二区| av网站在线免费看推荐| 国产玖玖精品视频| 国产精品爱啪在线线免费观看| 国产精品免费看一区二区三区| 粉嫩av免费一区二区三区| 国产精品视频中文字幕91| 99热国产在线观看| 日韩一级黄色大片| 国产精品一级黄片| 国内精品400部情侣激情| 日韩欧美国产精品一区二区三区| 99国产精品一区| 轻轻色免费在线视频| 日本.亚洲电影| 日韩在线观看中文字幕| 最近更新在线中文字幕一页| 亚洲国产精品精华素| 成人国产在线视频| 久草免费资源| www.日本视频| 26uuu亚洲综合色欧美| 中出一区二区| 中文字幕国产亚洲2019| www.久久热| 日韩精品免费视频人成|