116、骂战-《我的1979》
第(3/3)页
*计算字符串四则运算表达式
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();(未完待续。)
第(3/3)页