android 做计算器 怎么实现用EditText显示用户的全部输入 例如3+2-8 这样????
发布网友
发布时间:2023-01-04 04:47
我来回答
共3个回答
热心网友
时间:2023-10-12 19:58
你举得例子还算简单的,如果有很多括号的话,就不爽了。楼上说得断为字符数组对简单的运算式可行,复杂度比较大(有括号的)的就有些吃力了。
推荐用“栈”(只有一端可以进出)。举个例子:3+3*(4-4*5+5*(6/(1+6/3)))
从第一个字符开始压栈,当遇到')'就停,开始出栈找到最近的一个'(',然后运算(运算1+6/3),得到结果压栈,接着压,遇到')'再停.....按照上面的步骤会把括号都运算掉,剩下就是简单的运算式了,就是像你的例子那样的。
运算简单算式的方法很多,比如:用楼上说得split,遇到+ -就断,先把* /算完。
做计算器推荐做像windows附件里的那个计算器一样,输入就即时的计算,比较简单。
热心网友
时间:2023-10-12 19:58
这个还是比较简单的,只是你要来把这些运算符进行处理,比如说,你要考虑到一个运算的优先级,有乘除的要先算乘除,有加减的要算加减。对于个判断,你就需要把这个长串给分割了。
比如说3+2-8,你要分割之后放在数组中。【3,+,2,-,8】至于分割的方法,你可以采用string的split方法了。然后在根据运算符来进行程序计算。
/**
* 你的采纳是我继续为大家解疑答惑的动力,如解决了你的问题,望接纳!
*/
热心网友
时间:2023-10-12 19:59
StringBuffer sb = new StringBuffer();
sb.append("3");
sb.append("+");
sb.append("2");
sb.append("-");
sb.append("8");
EditText.setText(sb.toString());