题目
输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值
注:
3.1、表达式只含 +, -, *, / 四则运算符,不含括号
3.2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况
3.3、要考虑加减乘除按通常四则运算规定的计算优先级
3.4、除法用整数除法,即仅保留除法运算结果的整数部分。比如8/3=2。输入表达式保证无0作为除数情况发生
3.5、输入字符串一定是符合题意合法的表达式,其中只包括数字字符和四则运算符字符,除此之外不含其它任何字符,不会出现计算溢出情况
解决方法:利用两个栈,一个操作数栈,一个操作符栈,遇到*,/就分别从操作数栈呢一个a和和字符数组里面拿一个数b进行计算,得到的结果再压入操作数栈,遇到+-就直接入栈,最后字符数组读完了以后再对两个栈出栈进行计算。
public class calc {
public static void main(String[] args) {
// 读入表达式
Scanner in = new Scanner(System.in);
String s =