代码简单 复用 重构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)); }