zoukankan      html  css  js  c++  java
  • 四则运算----封装

    我的结对伙伴是:陈思明   http://www.cnblogs.com/chensiming/

    package size;
    import java.util.Stack;
    public class opt
    {
        public int math(String str)
        { 
            String[] operater =new String[20]; 
            String[] number = new String[20]; 
            Stack countStack1 = new Stack(); 
            Stack countStack2 = new Stack(); 
            int result =0; 
            number = str.split("\/|\*|\+|\-"); 
            operater= str.split("\d+"); 
            for(int i = 0; i<number.length;i++)
            { 
                countStack1.push(number[i]); 
                if(i!=number.length-1)
                {
                    countStack1.push(operater[i+1]); 
                } 
            } 
            while(!countStack1.isEmpty())countStack2.push(countStack1.pop()); 
            String op;
            while(!countStack2.isEmpty())
            { 
                result=0; 
                op = countStack2.pop().toString(); 
                if(op.equals("*"))
                { 
                result=Integer.parseInt(countStack1.pop().toString())*Integer.parseInt(countStack2.pop().toString()); 
                countStack1.push(result); 
                continue; 
                }
                if(op.equals("/"))
                { 
                result=Integer.parseInt(countStack1.pop().toString())/Integer.parseInt(countStack2.pop().toString()); 
                countStack1.push(result); 
                continue; 
                } 
                countStack1.push(op); 
            }
            while(!countStack1.isEmpty())countStack2.push(countStack1.pop()); 
            while(!countStack2.isEmpty())
            {
                result=0; 
                op = countStack2.pop().toString(); 
                if(op.equals("+"))
                { 
                    result=Integer.parseInt(countStack1.pop().toString())+Integer.parseInt(countStack2.pop().toString()); 
                    countStack1.push(result); 
                    continue; 
                } 
                if(op.equals("-"))
                { 
                    result=Integer.parseInt(countStack1.pop().toString())-Integer.parseInt(countStack2.pop().toString()); 
                    countStack1.push(result); 
                    continue; 
                } 
                countStack1.push(op); 
            }
            return result;
        } 
    }

    上一次我已经将计算的模块独立出来了,这次将他丢到另一个CLASS里封装了起来,方便测试以及其他用途

  • 相关阅读:
    NHibernate 过滤器(第十五篇)
    NHibernate 存储过程 第十四篇
    NHibernate 操作视图 第十三篇
    NHibernate Linq查询 扩展增强 (第九篇)
    NHibernate 之数据操作 (第五篇)
    NHibernate之一级缓存(第十篇)
    jQueryEasyUI
    linux的systemctl 命令用法 转
    linux dig命令 转
    OPTAUTH 两步验证详解
  • 原文地址:https://www.cnblogs.com/SiPine/p/4469070.html
Copyright © 2011-2022 走看看