专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

idg计算公式_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 20:04:42       共计:3595 浏览

idg计算公式?

分析

首先将中缀表达式转换为后缀表达式(逆波兰式),然后使用栈进行计算。

没有考虑括号、小数。

代码

import java.util.LinkedList;

import java.util.List;

import java.util.Stack;

public class ExpCal {

public static double calc(String exp) {

if (exp == null || exp.length() <= 0) {

throw new IllegalArgumentException();

}

char[] c = exp.toCharArray();

Stack<Character> s = new Stack<Character>();

List<String> reversePolishNotation = new LinkedList<String>();

for (int i = 0; i < c.length; ++i) {

if (c[i] == '+' || c[i] == '-' || c[i] == '*' || c[i] == '/') {

while (!s.isEmpty() && compOp(s.peek(), c[i]) >= 0) {

reversePolishNotation.add(String.valueOf(s.pop()));

}

s.push(c[i]);

} else {

StringBuilder sb = new StringBuilder();

while (i < c.length && c[i] >= '0' && c[i] <= '9') {

sb.append(c[i++]);

}

reversePolishNotation.add(sb.toString());

--i;

}

}

while (!s.isEmpty()) {

reversePolishNotation.add(String.valueOf(s.pop()));

}

Stack<Double> num = new Stack<Doub

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:java实习生刚去公司会做什么呢_java | ·下一条:ROS中的txrate和rxrate是什么意思_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有