永发信息网

java 怎么 字符串进行运算? 如:String str = "(((12 -2) * 5 ) /2) +30"; 最好要有代码。

答案:4  悬赏:50  手机版
解决时间 2021-02-26 13:56
java 怎么 字符串进行运算? 如:String str = "(((12 -2) * 5 ) /2) +30"; 最好要有代码。
最佳答案
如果你说的是用一个counter(String str)的方法调用后得到str的计算结果话
2个数字加一个运算符,3个一组进行计算,得到一个数字,加另一个数字和运算符继续计算
需要注意string中连续的数字要整合成一个数字
加上括号的时候运算顺序要小心,特别注意括号前有计算数字,比如5+(2+5)
括号后面有乘除法运算,比如5+(2+5)/2 括号算完了要继续算后面的除法,之后用得到的数字加上前面的加号运算符和‘5’一起运算,算法思想就是这样了

要是有堆栈就建俩堆栈,一个运算符,一个数字

没括号的:数字压栈,符号压栈,数字压栈,判断下一个符号是否为乘除号,不是数字退栈,符号退栈,数字退栈,计算,得到结果,数字压栈,是乘除号,继续符号压栈,数字压栈,数字退栈,符号退栈,数字退栈,计算,数字压栈,数字退栈,符号退栈,数字退栈,计算,数字压栈

要是有括号:遇到括号后,正括号压栈,数字压栈,符号压栈,数字压栈,数字退栈,符号退栈,数字退栈,计算,得到结果……(与不加括号的情况一样)……直到遇到反括号,将正括号退栈,先看后面是否有乘除符号,若没有,看看符号栈是否为空,若不为空说明是括号前有运算的情况,将整个括号得到的数值当做数字压栈后按不带括号的处理,后面有乘除法,先乘除然后作为一个数字继续运算

用数组就建立2个数组,2个int型变量作为数组指针,一个存符号,一个存数字,方法与用堆栈相同
代码量一般,0分完全没有写代码的欲望啊,不过我的算法是正确的,望采纳
全部回答
字符串运算?你说的字符串是哪个(((12 -2) * 5 ) /2) +30这个会按照字符串输出的,如果像求数学运算的话,可以先算出结果,然后转成字符串,
String str = String.valueOf((((12 -2) * 5 ) /2) +30);
int res = ((12 -2) * 5 ) /2 +30 ;
String str = res.toString() ;追问我对你表示无语,比上面的还不如追答搞错了 。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么学瓦工啊?
( )是指已经成立的保险合同,因其缺乏相应
线椒整个怎么腌制好吃
五笔中间的点怎么打
便民经营部在哪里啊,我有事要去这个地方
拳击手出场时穿的衣服有个头套,连体的。那种
下欠是什么意思
鸳冯线地址在什么地方,想过去办事
一个边长为10的正方形ABCD,E、F两点分别在BC
英语作文《a private conversation》如何读!
头部偏左很难受看什么科
豫香苑地址在什么地方,想过去办事
cl是什么的缩写
从北京西站到青岛即墨北的火车
怎么看自己的电脑配置好不好
推荐资讯
对照历史 孙俪”洗白“芈月有多难
想买个钱包送男友,自己刻字
一件衣服打折怎么算
雄风摩托车行地址在什么地方,想过去办事
韩剧隐藏身份里有没有感情戏
四年级古诗乌夜啼
如何渠道建设.ppt
The clothes were magic改为感叹句
柴沟镇地址在什么地方,想过去办事
妄念的意思
本人借钱给两兄弟,怎样写借条?
今天的我和明天的我是同一个人吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?