表达式求值,不是很难,
但是要仔细考虑优先级的问题,
首先做一个适合个位的+-*/运算,
其次就要考虑到对n位和小数点的运算,
这是一个过程,
两次实验下来,感觉自己的水平进步不少,
的确对自己的编程能力有很大的帮助.
这个表达式求值比计算器还要麻烦一些,
但是这个完全可以转化成一个很好的计算器,
只需要添加一些GUI的设计
想看源码的自己去下吧,
这个博客的编码有问题,
最起码的过滤都没有,
失望.....
遇到敏感的字符要过滤一下,比如"<" ">"....
其中在try里面是很有学问的,
try {
String str1="";
int m=i;
while(m str1=str1+a[m];
i=m;
m++;
}if(equalsign(a[i]+"")){
str1=a[i]+"";
}
double d = Double.parseDouble("" + str1);
Sd.push(d);
}
如何用内层循环控制外层循环,
恐怕很少有人会想的很清楚,
我就花了很长时间.
运行结果:
请输入您所求的表达式
3.154*(12+18)-23
多项式的结果是: 71.62
希望对您能有些收获,
有些东西只有自己去做,才能体会到,
程序是如此,人生也是一样,
有些东西是永远也教不会的. |