亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

java中的四則運算

2019-11-15 01:15:25
字體:
來源:轉載
供稿:網友
java中的四則運算

代碼的思路是通過正則判斷計算每個最小的計算單元。以下是代碼:

  1 import java.math.BigDecimal;  2 import java.util.regex.Matcher;  3 import java.util.regex.Pattern;  4   5 /**  6  * 計算器工具類  7  * @author shuqi  8  * @date   2015-7-23  9  * @version since 1.0 10  */ 11 public class CalculatorUtil { 12  13     public static BigDecimal arithmetic(String exp){ 14         if(!exp.matches("http://d+")){ 15             String result = parseExp(exp).replaceAll("[//[//]]", ""); 16             return new BigDecimal(result); 17         }else{ 18             return new BigDecimal(exp); 19         } 20     } 21     /** 22      * 最小計數單位 23      *  24      */ 25     PRivate static String minExp="^((//d+(//.//d+)?)|(//[//-//d+(//.//d+)?//]))[//+//-//*///]((//d+(//.//d+)?)|(//[//-//d+(//.//d+)?//]))$"; 26     /** 27      * 不帶括號的運算 28      */ 29     private static String noParentheses="^[^//(//)]+$"; 30     /** 31      * 匹配乘法或者除法 32      */ 33     private static String priorOperatorExp="(((//d+(//.//d+)?)|(//[//-//d+(//.//d+)?//]))[//*///]((//d+(//.//d+)?)|(//[//-//d+(//.//d+)?//])))"; 34     /** 35      * 匹配加法和減法 36      */ 37     private static String operatorExp="(((//d+(//.//d+)?)|(//[//-//d+(//.//d+)?//]))[//+//-]((//d+(//.//d+)?)|(//[//-//d+(//.//d+)?//])))"; 38     /** 39      * 匹配只帶一個括號的 40      */ 41     private static String minParentheses="http://([^//(//)]+//)"; 42      43     /** 44      * 解析計算四則運算表達式,例:2+((3+4)*2-22)/2*3 45      * @param expression 46      * @return 47      */ 48     private static String parseExp(String expression){ 49         //方法進入  先替換空格,在去除運算兩邊的()號 50         expression=expression.replaceAll("http://s+", "").replaceAll("^//(([^//(//)]+)//)$", "$1"); 51          52         //最小表達式計算 53         if(expression.matches(minExp)){ 54             String result=calculate(expression); 55             return Double.parseDouble(result)>=0?result:"["+result+"]"; 56         } 57         //計算不帶括號的四則運算 58         if(expression.matches(noParentheses)){ 59             Pattern patt=Pattern.compile(priorOperatorExp); 60             Matcher mat=patt.matcher(expression); 61             if(mat.find()){ 62                 String tempMinExp=mat.group(); 63                 expression=expression.replaceFirst(priorOperatorExp, parseExp(tempMinExp)); 64             }else{ 65                 patt=Pattern.compile(operatorExp); 66                 mat=patt.matcher(expression); 67                  68                 if(mat.find()){ 69                     String tempMinExp=mat.group(); 70                     expression=expression.replaceFirst(operatorExp, parseExp(tempMinExp)); 71                 } 72             } 73             return parseExp(expression); 74         } 75          76         //計算帶括號的四則運算 77         Pattern patt=Pattern.compile(minParentheses); 78         Matcher mat=patt.matcher(expression); 79         if(mat.find()){ 80             String tempMinExp=mat.group(); 81             expression=expression.replaceFirst(minParentheses, parseExp(tempMinExp)); 82         } 83         return parseExp(expression); 84     } 85     /** 86      * 計算最小單位四則運算表達式(兩個數字) 87      * @param exp 88      * @return 89      */ 90     private static String calculate(String exp){ 91         exp=exp.replaceAll("[//[//]]", ""); 92         String number[]=exp.replaceFirst("(//d)[//+//-//*///]", "$1,").split(","); 93         BigDecimal number1=new BigDecimal(number[0]); 94         BigDecimal number2=new BigDecimal(number[1]); 95         BigDecimal result=null; 96          97         String operator=exp.replaceFirst("^.*//d([//+//-//*///]).+$", "$1"); 98         if("+".equals(operator)){ 99             result=number1.add(number2);100         }else if("-".equals(operator)){101             result=number1.subtract(number2);102         }else if("*".equals(operator)){103             result=number1.multiply(number2);104         }else if("/".equals(operator)){105             //第二個參數為精度,第三個為四色五入的模式106             result=number1.divide(number2,5,BigDecimal.ROUND_CEILING);107         }108         109         return result!=null?result.toString():null;110     }111     112 }

代碼原本是一個博客,但記不得阿紫哪里了,原來代碼沒有注釋而且存在BUG,我稍微修稿了一哈添加了注釋。在這里做個筆記,方便以后用


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品2019中文字幕| 久久久97精品| 亚洲国产精品一区二区久| 清纯唯美亚洲综合| 中文字幕日韩专区| 国产小视频国产精品| 亚洲国产精品久久久久秋霞蜜臀| 国产精品视频精品视频| 久久国产精品久久久| 国产999在线观看| 国产精品免费视频xxxx| 亚洲自拍欧美另类| 国产精品第2页| 亚洲偷欧美偷国内偷| 2019中文字幕在线免费观看| 97色在线观看| 亚洲天堂成人在线视频| 亚洲欧洲日本专区| 中文在线不卡视频| 中文字幕久久精品| 美女少妇精品视频| 98精品国产自产在线观看| 欧洲s码亚洲m码精品一区| 国产精品综合网站| 91在线观看免费网站| 欧美日韩裸体免费视频| 亚洲欧美国产精品va在线观看| 欧美日韩免费区域视频在线观看| 欧美床上激情在线观看| 影音先锋欧美在线资源| 亚洲人在线视频| 久久伊人精品视频| 日韩av男人的天堂| 亚洲精品720p| 色播久久人人爽人人爽人人片视av| 欧美激情在线观看视频| 琪琪第一精品导航| 久久综合久久八八| 亚洲裸体xxxx| 欧美日韩在线看| 成人精品视频久久久久| 欧美性少妇18aaaa视频| 成人福利在线视频| 亚洲成人免费在线视频| 国产精欧美一区二区三区| 国产精品一区二区久久精品| 国产精品男人爽免费视频1| 亚洲欧洲在线看| 国产精品视频久久久久| 国产精品亚洲аv天堂网| 日韩精品欧美国产精品忘忧草| 4438全国亚洲精品在线观看视频| 欧美高清不卡在线| 亚洲一区二区在线播放| 欧美成人午夜影院| 美日韩精品免费观看视频| 国产在线精品一区免费香蕉| 欧美亚洲激情在线| 亚洲国产一区自拍| 视频在线一区二区| 欧美主播福利视频| 亚洲精品国产精品国自产在线| 日韩美女免费观看| 亚洲精品美女久久久| 91精品国产高清久久久久久久久| 欧美裸体男粗大视频在线观看| 亚洲天堂免费观看| 国产精品高潮呻吟久久av野狼| 不卡毛片在线看| 18性欧美xxxⅹ性满足| 亚洲欧美激情另类校园| 日韩免费观看在线观看| 欧美www视频在线观看| 精品福利在线视频| 欧美专区在线观看| 亚洲国产精品免费| 亚洲精品国产精品国自产观看浪潮| 欧美一级bbbbb性bbbb喷潮片| 国产亚洲人成网站在线观看| 欧美大全免费观看电视剧大泉洋| 色综合色综合久久综合频道88| 精品电影在线观看| 欧美中文字幕在线观看| 在线看片第一页欧美| 久久精品99久久久久久久久| 欧美裸体xxxx极品少妇| 欧美成人在线免费| 精品国产精品三级精品av网址| 久久综合网hezyo| 国产在线精品自拍| 国产香蕉精品视频一区二区三区| 美女扒开尿口让男人操亚洲视频网站| 欧美激情中文字幕乱码免费| 亚洲桃花岛网站| 91午夜理伦私人影院| 97精品在线观看| 5566成人精品视频免费| 久久男人资源视频| 亚洲图片制服诱惑| 疯狂做受xxxx欧美肥白少妇| 日韩va亚洲va欧洲va国产| 欧美精品成人在线| 日韩中文第一页| 欧美成年人在线观看| 国产精品第一视频| 国语自产精品视频在线看| 日本国产精品视频| 日本久久亚洲电影| 国产91精品在线播放| 亚洲欧美成人一区二区在线电影| 狠狠做深爱婷婷久久综合一区| 91沈先生作品| 亚洲精品欧美一区二区三区| 欧洲成人性视频| 久久的精品视频| 日韩成人免费视频| 亚洲免费一在线| 国产伦精品一区二区三区精品视频| 亚洲欧美日韩精品久久奇米色影视| 久久人人爽人人爽人人片亚洲| 精品伊人久久97| 国产亚洲免费的视频看| 亚洲精品动漫100p| 久久精品免费电影| 中文字幕国产精品久久| www.日韩系列| 中文字幕亚洲欧美日韩高清| 欧美日韩国产一区中文午夜| 久久综合久中文字幕青草| 黄色精品在线看| 色诱女教师一区二区三区| 欧美重口另类videos人妖| 琪琪第一精品导航| 国产亚洲精品久久| 日韩小视频在线| 欧美激情亚洲综合一区| 日韩在线视频导航| 欧美最顶级丰满的aⅴ艳星| 亚洲毛片在线看| 亚洲欧美一区二区三区四区| 国产国语videosex另类| 国产日韩欧美影视| 日韩免费av片在线观看| 日韩精品亚洲精品| 日韩视频精品在线| 国产91色在线|| 91视频免费网站| 伊人av综合网| 午夜精品福利视频| 91久久精品日日躁夜夜躁国产| 成人黄色中文字幕| 欧美精品一区二区三区国产精品| 欧美整片在线观看| 91久久久久久久久久| 日本三级韩国三级久久| 成人国产精品一区二区| 国产免费一区视频观看免费| 成人激情在线观看| 国产精品男人爽免费视频1| 2019中文在线观看| 久久久久国产精品免费网站| 日韩小视频在线观看| 久久亚洲私人国产精品va| 在线观看日韩www视频免费|