java 怎么 字符串进行运算? 如:String str = "(((12 -2) * 5 ) /2) +30"; 最好要有代码。
答案:4 悬赏:50 手机版
解决时间 2021-02-26 13:56
- 提问者网友:树红树绿
- 2021-02-26 02:45
java 怎么 字符串进行运算? 如:String str = "(((12 -2) * 5 ) /2) +30"; 最好要有代码。
最佳答案
- 五星知识达人网友:想偏头吻你
- 2021-02-26 04:12
如果你说的是用一个counter(String str)的方法调用后得到str的计算结果话
2个数字加一个运算符,3个一组进行计算,得到一个数字,加另一个数字和运算符继续计算
需要注意string中连续的数字要整合成一个数字
加上括号的时候运算顺序要小心,特别注意括号前有计算数字,比如5+(2+5)
括号后面有乘除法运算,比如5+(2+5)/2 括号算完了要继续算后面的除法,之后用得到的数字加上前面的加号运算符和‘5’一起运算,算法思想就是这样了
要是有堆栈就建俩堆栈,一个运算符,一个数字
没括号的:数字压栈,符号压栈,数字压栈,判断下一个符号是否为乘除号,不是数字退栈,符号退栈,数字退栈,计算,得到结果,数字压栈,是乘除号,继续符号压栈,数字压栈,数字退栈,符号退栈,数字退栈,计算,数字压栈,数字退栈,符号退栈,数字退栈,计算,数字压栈
要是有括号:遇到括号后,正括号压栈,数字压栈,符号压栈,数字压栈,数字退栈,符号退栈,数字退栈,计算,得到结果……(与不加括号的情况一样)……直到遇到反括号,将正括号退栈,先看后面是否有乘除符号,若没有,看看符号栈是否为空,若不为空说明是括号前有运算的情况,将整个括号得到的数值当做数字压栈后按不带括号的处理,后面有乘除法,先乘除然后作为一个数字继续运算
用数组就建立2个数组,2个int型变量作为数组指针,一个存符号,一个存数字,方法与用堆栈相同
代码量一般,0分完全没有写代码的欲望啊,不过我的算法是正确的,望采纳
2个数字加一个运算符,3个一组进行计算,得到一个数字,加另一个数字和运算符继续计算
需要注意string中连续的数字要整合成一个数字
加上括号的时候运算顺序要小心,特别注意括号前有计算数字,比如5+(2+5)
括号后面有乘除法运算,比如5+(2+5)/2 括号算完了要继续算后面的除法,之后用得到的数字加上前面的加号运算符和‘5’一起运算,算法思想就是这样了
要是有堆栈就建俩堆栈,一个运算符,一个数字
没括号的:数字压栈,符号压栈,数字压栈,判断下一个符号是否为乘除号,不是数字退栈,符号退栈,数字退栈,计算,得到结果,数字压栈,是乘除号,继续符号压栈,数字压栈,数字退栈,符号退栈,数字退栈,计算,数字压栈,数字退栈,符号退栈,数字退栈,计算,数字压栈
要是有括号:遇到括号后,正括号压栈,数字压栈,符号压栈,数字压栈,数字退栈,符号退栈,数字退栈,计算,得到结果……(与不加括号的情况一样)……直到遇到反括号,将正括号退栈,先看后面是否有乘除符号,若没有,看看符号栈是否为空,若不为空说明是括号前有运算的情况,将整个括号得到的数值当做数字压栈后按不带括号的处理,后面有乘除法,先乘除然后作为一个数字继续运算
用数组就建立2个数组,2个int型变量作为数组指针,一个存符号,一个存数字,方法与用堆栈相同
代码量一般,0分完全没有写代码的欲望啊,不过我的算法是正确的,望采纳
全部回答
- 1楼网友:琴狂剑也妄
- 2021-02-26 06:41
字符串运算?你说的字符串是哪个(((12 -2) * 5 ) /2) +30这个会按照字符串输出的,如果像求数学运算的话,可以先算出结果,然后转成字符串,
- 2楼网友:末日狂欢
- 2021-02-26 05:17
String str = String.valueOf((((12 -2) * 5 ) /2) +30);
- 3楼网友:西岸风
- 2021-02-26 04:45
int res = ((12 -2) * 5 ) /2 +30 ;
String str = res.toString() ;追问我对你表示无语,比上面的还不如追答搞错了 。
String str = res.toString() ;追问我对你表示无语,比上面的还不如追答搞错了 。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯