java 关于字符串截取后的运算问题
比如有这样一个字符串"32*45+27*12/44"我现在已经把其数字和符号都截取出来了装在数组里面,但是结下来要怎样做才使其按字符串的形式,运算出结果.(这其实就是一个...
比如有这样一个字符串 "32*45+27*12/44" 我现在已经把其数字和符号都截取出来了 装在数组里面, 但是结下来要怎样做才使其按字符串的形式,运算出结果. (这其实就是一个计算器,跟以往的计算器不同的是这个计算的Text 框内是带符号的.也就是说在获取这个框内数字的时候你要连符号一起获取,在点击=号的时候就显示出这一串数字的计算结果.)
展开
展开全部
这是我以前的答案:
http://zhidao.baidu.com/question/301622804.html?oldq=1
它的核心的算法就在于:
2个数字加一个运算符,3个一组进行计算,得到一个数字,加另一个数字和运算符继续计算
要点:
1、计算时数字部分和符号部分要分两个数组或者堆栈进行单独存放。数组从后加,从后取。
2、两个数字计算后得到的数字要放到数组尾端或者堆栈栈顶,对数组来说还要注意清楚已经计算过的数字。
3、注意计算的优先级,如果遇到乘除法,要将数字部分数组指针后移,或者堆栈压栈,继续计算后面的,知道优先级降低,数组指针前移或者堆栈退栈,完成之前的计算步骤
貌似的你这个没用到括号,那就暂不考虑加括号的情况了
http://zhidao.baidu.com/question/301622804.html?oldq=1
它的核心的算法就在于:
2个数字加一个运算符,3个一组进行计算,得到一个数字,加另一个数字和运算符继续计算
要点:
1、计算时数字部分和符号部分要分两个数组或者堆栈进行单独存放。数组从后加,从后取。
2、两个数字计算后得到的数字要放到数组尾端或者堆栈栈顶,对数组来说还要注意清楚已经计算过的数字。
3、注意计算的优先级,如果遇到乘除法,要将数字部分数组指针后移,或者堆栈压栈,继续计算后面的,知道优先级降低,数组指针前移或者堆栈退栈,完成之前的计算步骤
貌似的你这个没用到括号,那就暂不考虑加括号的情况了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询