计算器较长表达式整体运算
来源:互联网 发布:3d分析软件 编辑:程序博客网 时间:2024/05/29 01:51
String t1="5+9*8/10-66";String str1=t1; String[] str2=t1.split("\\+|-|\\*|/");//得到字符串分割后的所有数字 int count=0; char[] f=new char[str2.length-1] ; char[] ch=str1.toCharArray(); //拆分出字符串中的所有符号并赋值给f[]数组。 for(int i=0;i<ch.length;i++){ for(int j=count;j<ch.length;j++){ if(ch[j]=='+'||ch[j]=='-'||ch[j]=='*'||ch[j]=='/'){ f[i]=ch[j]; count=j+1; break; } count=j+1; } } //得到所有数字和符号后,优先进行乘除运算。 for(int m=0;m<f.length;m++){ switch(f[m]){ case'*':{ str2[m+1]=String.valueOf(Double.parseDouble(str2[m])*Double.parseDouble(str2[m+1])); str2[m]="0"; f[m]='+'; break; } case'/':{ str2[m+1]=String.valueOf(Double.parseDouble(str2[m])/Double.parseDouble(str2[m+1])); str2[m]="0"; f[m]='+'; break; } } } //从左到右依次计算返回最终值 for(int k=0;k<f.length;k++){ switch(f[k]){ case '+':str2[k+1]=String.valueOf(Double.parseDouble(str2[k])+Double.parseDouble(str2[k+1]));break; case '-':str2[k+1]=String.valueOf(Double.parseDouble(str2[k])-Double.parseDouble(str2[k+1]));break; } } String result=str2[str2.length-1];
0 0
- 计算器较长表达式整体运算
- 计算器(逆波兰运算表达式)
- Python3.5计算器之复杂表达式运算
- 使用UE 正则表达式 查找siebel log文件 sql耗时较长的语句
- C#作业——表达式计算器+小数+运算符优先级
- Java实现表达式的运算-Android简易计算器
- 表达式计算器
- 表达式计算器
- 表达式计算器
- 较高级算术表达式
- 实现计算器4则运算算法-中缀表达式转后缀表达式
- 打印较长的json数据Log
- 排查调用耗时较长的问题
- 较长输入行折成多行
- KVM构建线上虚拟平台(较长)
- 正则表达式(较全)
- 较全的正则表达式
- C/C++计算器(利用栈表达式求值,支持函数运算)
- JDk的环境变量如何设置
- Oracle12c中多宿主环境(CDB&PDB)的数据库触发器(Database Trigger)
- 复合主键
- 20181220_eglSwapBuffers详解
- MyEclipse 常用快捷键
- 计算器较长表达式整体运算
- 人脸识别之特征脸方法(Eigenface)
- 判断用户设备的方法(只有真机有效)
- Redis服务器搭建/配置/及Jedis客户端的使用方法
- mybatis 批量插入
- 元素类型为 "resultMap" 的内容必须匹配 "(constructor?,id*,result*,association*,collection*,discriminator?)"。
- HDOJ 2802 F(N)
- 论文素材搜集
- 函数CreateProcess