小弟我的第一个Android应用:计算器 括号 符号优先级 从左往右运算

我的第一个Android应用:计算器 括号 符号优先级 从左往右运算我是刚学习入门的小苗子。这是我的第一个andro

我的第一个Android应用:计算器 括号 符号优先级 从左往右运算
我是刚学习入门的小苗子。这是我的第一个android应用程序。
虽然这个例子网络上已经很多了,自己能独立想出来还是很兴奋。
记录自己的成长。慢慢的赶上大家。





思路:假设有一个存在一个f方法能解四则运算(运算优先级如)以下问题
f("1+2+3")=6
f("1+2")=3
f("1")=1
规律f("1+2+3")=f(1)+f(2)+f(3)

假设f("1+2*3")
可以看成f("1")+f("2*3")
f("2*3")看成f("2")*f("3")

用递归可以解这个问题。递归的最终的返回条件是字符串里没有符号是数字
先按最后一个加号拆,再按最后一个乘除拆可以实现从左往右运算,加减乘除优先级。

如f("1+2-3*4")=f("1+2")-f("3*4");

如果存在()的话如何解呢?
如f("1+2+(3+4)")

我把"3+4"看成是一个字符串$0;
那么f("1+2+(3+4)")=f(1+2+$0)=f(1)+f(2)+f($0);
f($0)=f(3+4)=f(3)+f(4)







以下是代码的实现

后台打印如