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