temp=matcher.group();
061
053
060
string=computeStirngNoBracket(string);
080
returne.getMessage();(未完待续。)
computeStirngNoBracket(temp)
072
/**
069
093
094
070
079
string=string.replaceAll(“\\s“,““);//去除空格
*计算字符串四则运算表达式
068
}
077
string=string.substring(0,index)
}
066
try{
089
055
067
065
if(!Pattern.matches(regexCheck,string))
returnstring;
}
057
returns;
while(pattern.matcher(string).find()){
Stringregex=“\\([\\d\\.\\ \\-\\*/] \\)“;//提取括号表达式
078
063
071
056
075
string.substring(index temp.length());
}catch(NumberFormatExceptione){
096
085
064
}catch(Exceptione){
076
s=decimalFormat.format(obj);
publicstaticStringcomputeString(Stringstring){
*/
087
*@return
*@paramstring
095
}
091
//最后计算总的表达式结果
//循环计算所有括号里的表达式
058
StringregexCheck=“[\\(\\)\\d\\ \\-\\*/\\.]*“;//是否是合法的表达式
090
}else{
DecimalFormatdecimalFormat=newDecimalFormat(format);
}else{
088
086
Stringtemp=““;
NumberFormatnumberFormat=NumberFormat.getInstance();
052
074
082
062
si m i s h u wu. c o m
index=string.indexOf(temp);
Patternpattern=Patternpile(regex);
}
s=numberFormat.format(obj);
097
081
}
059
083
092
073
while(matcher.find()){
matcher=pattern.matcher(string);
054
084
Matchermatcher=null;
intindex=-1;