首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

混同运算 后缀表达式算法实现

2012-11-09 
混合运算 后缀表达式算法实现因为要用到四则混合运算,写了一个工具类,是基于后缀表达式的实现????? ??? fo

混合运算 后缀表达式算法实现

因为要用到四则混合运算,写了一个工具类,是基于后缀表达式的实现

?

?

??? ??? for(String item : postfixList) {
??? ??? ??? if(!isOperator(item)){
??? ??? ??? ??? rsStack.push(Double.parseDouble(item)) ;
??? ??? ??? } else {
??? ??? ??? ??? double num1 = rsStack.pop() ;
??? ??? ??? ??? double num2 = rsStack.pop() ;
??? ??? ??? ???
??? ??? ??? ??? if("+".equals(item)){
??? ??? ??? ??? ??? r = num2 + num1 ;
??? ??? ??? ??? } else if("-".equals(item)){
??? ??? ??? ??? ??? r = num2 - num1 ;
??? ??? ??? ??? } else if("*".equals(item)){
??? ??? ??? ??? ??? r = num2 * num1 ;
??? ??? ??? ??? } else if("/".equals(item)){
??? ??? ??? ??? ??? r = num2 / num1 ;
??? ??? ??? ??? } else if("%".equals(item)){
??? ??? ??? ??? ??? r = num2 % num1 ;
??? ??? ??? ??? } else if("^".equals(item)){
??? ??? ??? ??? ??? r = Math.pow(num2, num1) ;
??? ??? ??? ??? }
??? ??? ??? ???
??? ??? ??? ??? rsStack.push(r) ;
??? ??? ??? }
??? ??? }
??? ???
??? ??? return rsStack.pop() ;
??? }
???
??? //测试
??? public static void main(String[] args){
??? ???
??? ??? String exp = "1/(0.3243e3) * ((-20 + 28) + (2 + 2))" ;
??? ???
//??? ??? System.out.println( System.currentTimeMillis()) ;
??? ??? System.out.println(Calculator.newInstance().calculate(exp) ) ;
//??? ??? System.out.println( System.currentTimeMillis() ) ;
??? }
}

热点排行