代码简单 复用 重构7月7

背景:

从txt 中解析得到字符串,但是需要判断是否有值,如果有且 小数点后面位数超过2位,进行截取。

String price = array[15];
        if(!price.equals("")){
            if(price.indexOf(".") > 0 && price.length() > price.indexOf(".")+3){
                price = price.substring(0, price.indexOf(".")+3);
            }
            dioh.setPrice(Double.valueOf(price));
        }
    
        String suFactor = array[16];
        if(!suFactor.equals("")){
            if(suFactor.indexOf(".") > 0 && suFactor.length() > suFactor.indexOf(".")+3){
                suFactor = suFactor.substring(0, suFactor.indexOf(".")+3);
            }
            dioh.setSuFactor(Double.valueOf(suFactor));
        }

开始是这样的,每一个都要写一遍。。进行抽取

    /** 对字符串进行判断 如果是double 型且含有两位以上小数 进行截取*/
    private static String doubleStr(String str){
        if(str.indexOf(".") >= 0 && str.length() > str.indexOf(".")+3){
            str = str.substring(0, str.indexOf(".")+3);
        }
        return str;
    }

调用变成了这样,简化了很多,且不容易出错

        String invTotalPiece = array[19];
        if(!invTotalPiece.equals("")){
            invTotalPiece = doubleStr(invTotalPiece);
            dioh.setInvTotalPiece(Double.valueOf(invTotalPiece));
        }

猜你喜欢

转载自www.cnblogs.com/lyon91/p/9274657.html