Java实现简单的表达式计算器功能示例
本文实例讲述了Java实现简单的表达式计算器功能。分享给大家供大家参考,具体如下:
读入一个只包含+,-,*,/的非负整数计算表达式,计算该表达式的值。
Input
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
Output
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
SampleInput
1+2
4+2*5-7/11
0
SampleOutput
3.00
13.36
这是一个简单的计算器。下面我自己讲一下原理吧。简单的来说就是弄两个栈一个用来存数值,一个用来存加减乘除的符号。你也可以用数组来做,不过JAVA自己自带栈的功能,用起来会方便很多。
值得注意的是:用来装数值的栈,最多存两个数值,这是为了计算。而装符号的则是装一个。当我们遇到'*'和'/‘时,我们是先进行运算,再压栈。对了,在写运算函数时一定要注意,运算的顺序,我自己写的时候,因为大意,也是被坑了很久。
具体代码如下:
packageTemp; importjava.util.Scanner; importjava.util.Stack; publicclassP1237{ publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); Stringstr=sc.nextLine(); while(!str.equals("0")){//到0了就结束用栈来做 Stacknum=newStack ();//加数值 Stack md=newStack ();//加运算符“+”,“-”,“*”,“/" Stringstr1[]=str.split("");//用一个新的数组,以空格来划分 for(inti=0;i 57){ returnfalse; } } returntrue; } }
PS:这里再为大家推荐几款计算工具供大家参考:
在线数学表达式简单转换/计算工具:
http://tools.jb51.net/jisuanqi/exp_jisuanqi
在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue
在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。