JAVA实现简单四则混合运算
2015-09-16 11:59
731 查看
java实现加减乘除混合运算,
http://www.oschina.net/code/snippet_189899_36597
这个算法很好,
加法 加号前面的加上加号后面的
减法 减号前面的减去减号后面的
乘法 乘号前面的乘上乘号后面的
除法 除法前面的除以除号后面的
递归调用
http://www.oschina.net/code/snippet_189899_36597
这个算法很好,
加法 加号前面的加上加号后面的
减法 减号前面的减去减号后面的
乘法 乘号前面的乘上乘号后面的
除法 除法前面的除以除号后面的
递归调用
public static float opt(String s) throws Exception{ if(s == null || "".equals(s.trim())) { return 0f; } int a1=s.indexOf("+"); int a2=s.indexOf("-"); int a3=s.indexOf("*"); int a4=s.indexOf("/"); int a5=s.indexOf("("); if(a1==-1&&a2==-1&&a3==-1&&a4==-1){ if(s.trim()==null||"".equals(s.trim())){ throw new Exception("operate error"); } return Float.parseFloat(s.trim()); } if(a5!=-1){ int a6=s.indexOf(")"); if(a6==-1){ throw new Exception("括号不匹配"); }else{ float f=opt(s.substring(a5+1,a6).trim()); s=s.replace(s.substring(a5,a6+1), String.valueOf(f)); return opt(s); } } if(a1!=-1){ return opt(s.substring(0,a1))+opt(s.substring(a1+1,s.length())); } if(a2!=-1){ return opt(s.substring(0,a2))-opt(s.substring(a2+1,s.length())); } if(a3!=-1){ return opt(s.substring(0,a3))*opt(s.substring(a3+1,s.length())); } if(a4!=-1){ return opt(s.substring(0,a4))/opt(s.substring(a4+1,s.length())); } return Integer.parseInt(s.trim()); } }
相关文章推荐
- java基础-LinkedList集合
- 企业支付宝账号开发接口教程--JAVA-UTF-8(实际操作------SpringMVC+JSP)
- Java泛型类型擦除导致的类型转换问题
- 【Java 之 JVM】Java内存结构概述
- java中将数组、对象、Map、List转换成JSON数据
- JDK源码阅读之List接口
- spring AOP切入点表达式规则
- java 读取mysql中数据 并取出
- Java中泛型数组的使用
- java io详解
- java基础-ArrayList
- 当eclipse导入工程时报"The builder launch configuration could not be found"错误时的解决方法
- Eclipse调试进入JDK源码
- java 图片上写文字
- java中两个for循环的区别
- Java多线程---main与子线程 start与run
- java socket编程
- java 反编译 行号对齐 decompiler如何去掉行号
- spring aop术语
- Android无法导入下载好的项目(和Eclipse中已经存在的项目命名一样导致冲突)解决办法