116、骂战

作品:《我的1979

    请稍后阅读,章节错误
    packagecom.z
    002
    003
    importjava.text.DecimalFormat;
    004
    importjava.text.NumberFormat;
    005
    importjava.text.SimpleDateFormat;
    006
    importjava.util.regex.Matcher;
    007
    importjava.util.regex.Pattern;
    008
    009
    publicclassReportUtil{
    010
    011
    /**
    012
    *格式化日期
    013
    *@paramobj日期对象
    014
    *@paramformat格式化字符串
    015
    *@return
    016
    */
    017
    publicstaticStringformatDate(Objectobj,Stringformat){
    018
    if(obj==null)
    019
    return““;
    020
    021
    Strings=String.valueOf(obj);
    022
    if(format==null||““.equals(format.trim())){
    023
    format=“yyyy-MM-dd“;
    024
    }
    025
    try{
    026
    SimpleDateFormatdateFormat=newSimpleDateFormat(format);
    027
    s=dateFormat.format(obj);
    028
    }catch(Exceptione){
    029
    }
    030
    returns;
    031
    }
    032
    033
    /**
    034
    *格式化数字
    035
    *@paramobj数字对象
    036
    *@paramformat格式化字符串
    037
    *@return
    038
    */
    039
    publicstaticStringformatNumber(Objectobj,Stringformat){
    040
    if(obj==null)
    041
    return““;
    042
    043
    Strings=String.valueOf(obj);
    044
    if(format==null||““.equals(format.trim())){
    045
    format=“#.00“;
    046
    }
    047
    try{
    048
    if(objinstanceofDouble||objinstanceofFloat){
    049
    if(format.contains(“%“)){
    050
    NumberFormatnumberFormat=NumberFormat.getPercentInstance();
    051
    s=numberFormat.format(obj);
    052
    }else{
    053
    DecimalFormatdecimalFormat=newDecimalFormat(format);
    054
    s=decimalFormat.format(obj);
    055
    }
    056
    }else{
    057
    NumberFormatnumberFormat=NumberFormat.getInstance();
    058
    s=numberFormat.format(obj);
    059
    }
    060
    }catch(Exceptione){
    061
    }
    062
    returns;
    063
    }
    064
    065
    /**
    066
    *计算字符串四则运算表达式
    067
    *@paramstring
    068
    *@return
    069
    */
    070
    publicstaticStringcomputeString(Stringstring){
    071
    StringregexCheck=“[\\(\\)\\d\\+\\-\\*/\\.]*“;//是否是合法的表达式
    072
    073
    if(!Pattern.matches(regexCheck,string))
    074
    returnstring;
    075
    076
    Matchermatcher=null;
    077
    Stringtemp=““;
    078
    intindex=-1;
    079
    Stringregex=“\\([\\d\\.\\+\\-\\*/]+\\)“;//提取括号表达式
    080
    string=string.replaceAll(“\\s“,““);//去除空格
    081
    try{
    082
    Patternpattern=Pattern.compile(regex);
    083
    //循环计算所有括号里的表达式
    084
    while(pattern.matcher(string).find()){
    085
    matcher=pattern.matcher(string);
    086
    while(matcher.find()){
    087
    temp=matcher.group();
    088
    index=string.indexOf(temp);
    089
    string=string.substring(0,index)
    090
    +computeStirngNoBracket(temp)
    091
    +string.substring(index+temp.length());
    092
    }
    093
    }
    094
    //最后计算总的表达式结果
    095
    string=computeStirngNoBracket(string);
    096
    }catch(NumberFormatExceptione){
    097
    returne.getMessage();(未完待续。)