写一个支持四则运算的计算器,可以支持诸如“1 + 2 + 3”的表达式

写一个支持四则运算的计算器,可以支持诸如“1 + 2 + 3”的表达式

第一版代码:说明只能顺序执行计算,没有乘除括号等优先计算
import java.util.Scanner;

 /**
 * <p>ClassName: Calculator</p>
 * <p>Description: 计算器</p>
 * <p>Author: spring.zhang</p >
 * <p>Date: 2020年4月23日</p>
 */
public class Calculator {

	public static void main(String[] args) {
		// 输入运算表达式
		Scanner in = new Scanner(System.in);
		String s = in.next();
		boolean flag = false; // 标识第一个数
		double sum = 0; // 运算结果
		char ch = '+'; // 用于记录表达式最后一个运算符
		StringBuilder str = new StringBuilder(); // 记录运算的数
		for (int i=0; i<s.length(); i++) {
			if (s.charAt(i) == '+' || s.charAt(i) == '-' || s.charAt(i) == '*' || s.charAt(i) == '/') {
				if(!flag){
					flag = true;
					sum+=Double.parseDouble(str.toString());
					str = new StringBuilder();
				}else{
					if (ch == '+') {
						sum += Double.parseDouble(str.toString());
					} else if(ch == '-'){
						sum -= Double.parseDouble(str.toString());
					} else if(ch == '*'){
						sum *= Double.parseDouble(str.toString());
					} else if(ch == '/'){
						sum/=Double.parseDouble(str.toString());
					}
					str = new StringBuilder();
				}
				ch = s.charAt(i);
			} else {
				str.append(s.charAt(i));
			}
		}
		// 计算最后一个数
		if (ch == '+') {
			sum += Double.parseDouble(str.toString());
		} else if(ch == '-'){
			sum -= Double.parseDouble(str.toString());
		} else if(ch == '*'){
			sum *= Double.parseDouble(str.toString());
		} else if(ch == '/'){
			sum/=Double.parseDouble(str.toString());
		}
		System.out.println(sum);
	}

}

输出

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zcxbd/article/details/105723888
今日推荐