发表在 java 09-02 17:29:27
该程序使用方式:让用户输入一个算式,例如"1/3+2*5/2+12*(5+4)/3",然后输出结果。
这玩意看起来挺简单的,如果使用脚本引擎也就是几行代码的事。但是如果我们要自己解析这个算式还是有些麻烦的。关键是有大量的字符串处理工作,下面是我写的代码(核心部分)
//本段代码用于处理无括号的算式
private static String deal(String str, int index) {
String res = str.substring(0);
int fir =index-1;
int la = index+1;
for(;fir>=0;fir--){
if(isAM(res.charAt(fir))){
fir++;
break;
}
}
for(;la<res.length();la++){
if(isAM(res.charAt(la))){
break;
}
}
String F="";
if(fir>0){
F = res.substring(0, fir);
}else{
fir=0;
}
String M="";
if(la<res.length()){
M = done(res.substring(fir,la));
}else{
M = done(res.substring(fir));
}
String L="";
if(la<res.length()){
L = res.substring(la);
}
return F+M+L;
}
下面是源码:百度网盘 密码:om2q
赞