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();(未完待续。)