当前位置: 首页 > news >正文

微信网站制作免费/营销软文案例

微信网站制作免费,营销软文案例,妇幼保健院人流价格表,海沧区建设局网站市政处/*** 1.先转换为逆波兰顺序* 数字直接存入list,符号压入栈中,但是如果栈底元素不大于该运算符的运算顺序,则将栈底pop,直到大于栈底运算符为止,再压入栈中,* 最后将运算符依次全部pop(以上pop出的运算符存入list)* 2.根据逆序算出结果* 从头到尾依次读取list的数据,将数字压入栈…

/**

* 1.先转换为逆波兰顺序

* 数字直接存入list,符号压入栈中,但是如果栈底元素不大于该运算符的运算顺序,则将栈底pop,直到大于栈底运算符为止,再压入栈中,

* 最后将运算符依次全部pop(以上pop出的运算符存入list)

* 2.根据逆序算出结果

* 从头到尾依次读取list的数据,将数字压入栈中,出现运算符后pop出两个数字进行运算,运算式为"后pop数 运算符 先pop数"

* 运算完毕将结果再次压入栈中.结束后,将数字栈中的唯一一个数字pop出并将其返回.

*

*

* 学习之处:

* 1.String对象的比较不要用==,>,<.>

* 2.使用HashMap()的定义可以给对象进行编号或加权.

* 3.需要时要给读取的信息加上结尾标志,如读入String结尾的"#".

* 4.取String的单个字母:String temps=String.valueOf(expression.charAt(i));

* 5.检测数字:temps.matches("[0-9.]")

**/

1 public classCalculator {2 privateString string;3 private MyStack opratorStack = newMyStack();4 private MyStack numberStack = newMyStack();5 private ArrayList rpnList = newArrayList();6 private Map priorityMap=new HashMap();//用于存储操作符优先级的Map7 //初始化优先级约定(可根据计算的复杂程度扩展)

8

9 publicCalculator(String str)10 {11 priorityMap.put("+",0);12 priorityMap.put("-",0);13 priorityMap.put("*", 1);14 priorityMap.put("/", 1);15 priorityMap.put("(", 2);16 string = str+"#";17 }18 private int getPriority(String op)//得到一个操作符的优先级

19 {20 returnpriorityMap.get(op);21 }22

23 private voidtoRpn() {24

25 String temp = "";26 for (int i = 0; i < string.length(); i++) {27 String ch =String.valueOf(string.charAt(i));28 if (ch.matches("[0-9.]"))29 temp +=ch;30

31 else { //如果操作数完整,现将其存入list中再进行后续操作

32

33 if(!temp.equals("")) {//防止加入进空格

34 rpnList.add(temp);35 temp = "";36 }37

38 if (ch.equals("#")) { //读取结束时将运算符栈依次pop并添加到rpnList中

39 while (!opratorStack.isEmpty()) {40 rpnList.add(opratorStack.pop());41 }42 } else if (ch.equals(")")) { //遇到右括号将左括号后的运算符全部pop

43 String op =opratorStack.pop();44 while (!op .equals("(")) {45 rpnList.add(op);46 op =opratorStack.pop();47 }48 } else{49 if (!opratorStack.isEmpty()) { //如果为普通的运算符

50 String endOprator =opratorStack.endValue();51

52 while (!endOprator.equals( "(") && (getPriority(ch)

55 if (!opratorStack.isEmpty()) {56 endOprator =opratorStack.endValue();57 }else

58 break;59

60 }61

62 opratorStack.push(ch);63 }64 else

65 opratorStack.push(ch);66 }67 }68 }69 }70

71 public doublecalculate(String string){72 this.string = string+"#";73 returncalculate();74 }75

76 public doublecalculate(){77 toRpn();//逆波兰序列转换78

79 //扫描String对象

80 for(int i = 0; i < rpnList.size(); i++){81 String temp =rpnList.get(i);82 //匹配第一个字符,为数字的则将String对象转为Double并存入numberStack中

83 if(String.valueOf(temp.charAt(0)).matches("[0-9]")){84 numberStack.push(Double.valueOf(temp));85 } //匹配到运算符,调出最后两个numberStack中数字进行运算,并将得数压入栈中(栈次底数 操作符 栈最底数)

86 else{87 //Double n = opration(numberStack.pop(), numberStack.pop(), temp);

88 Double n =numberStack.pop();89 numberStack.push(opration(numberStack.pop(), n , temp));90 }91 }92

93 rpnList = new ArrayList();//为下次运算做准备

94 returnnumberStack.pop();95 }96

97 privateDouble opration(Double val1,Double val2,String oprator){98 if(oprator.equals("+"))99 val1 +=val2;100 else if(oprator.equals("-"))101 val1 -=val2;102 else if(oprator.equals("*"))103 val1 *=val2;104 else

105 val1 /=val2;106 returnval1;107 }108

109 public static voidmain(String[] args) {110 String string1 = "12+2*37-(4*5+6)*7";111 Calculator calculator = newCalculator(string1);112

113 System.out.println(calculator.calculate());114 System.out.println(calculator.calculate("4.99+5.99+6.99*1.06"));115 }116 }

运算结果:

-96.0

18.389400000000002

Process finished with exit code 0

http://www.jmfq.cn/news/5155579.html

相关文章:

  • wordpress建站需要写代码吗/论坛排名
  • 关于美食的网站设计/举例说明seo
  • 介绍自己做的网站的论文/企业网址搭建
  • 阿里巴巴网站怎么做全屏分类/在百度怎么发广告做宣传
  • 深圳三级分销网站设计制作/湖南长沙seo
  • 2 试列出网站开发建设的步骤/邵阳seo排名
  • 电子商务网站开发总结/深圳网络推广建站
  • 求一个自己做的网站链接/广州seo优化推广
  • 银行卡转账生成器在线制作网站/互联网营销方式
  • 网站输入一级域名自动跳转二级域名/片多多可以免费看电视剧吗
  • 关于制作网站的方案/seo推广教程seo推广技巧
  • 怎么做网页 网站制作/陕西省人民政府
  • 做一个网站链接怎么做/现在学seo课程多少钱
  • 如果评价网站做的好不好/外包网络推广营销
  • 临汾哪做网站/企业seo的措施有哪些
  • 禁止搜索引擎抓取wordpress的目录/广州网站制作实力乐云seo
  • 安卓应用商店下载/信息流优化师
  • 做网站网页/百度站长平台账号购买
  • wordpress网站缓存安装/小学生摘抄新闻
  • php心水主论坛网站制作网页设计/想找搜索引擎优化
  • 网站的构成/长沙优化排名
  • 企业网站ppt怎么做/seo培训
  • 仓山网站建设/竞价推广外包托管
  • 小说网站怎么做seo/如何做网络推广外包
  • 怎么看网站服务器地址/app推广平台网站
  • wordpress js 代码/陕西seo顾问服务
  • html5电影网站模板/河北百度推广电话
  • 网站的建设方面如何写/高清视频线转换线
  • 网站外包要花多少钱/一级造价工程师
  • 网站如何做微信支付宝支付/快刷网站