用Java 实现简单的计算器

        由于想转到上层开发,便学习起了Java,《Java语言程序设计-基础篇》这本书挺不错的,挺适合入门。看了几天,今天学到字符串处理这章,看得差不多了便写了计算器这个小程序练习下。

        以下为计算器的方法:

public static void calculator(StringBuilder s){
		// Define operate priority, must first calculate '*' or '/'
		// then is '+', '-'
		String[] operatorPriority = {"(\\d+)(\\*|\\/)(\\d+)", "(\\d+)(\\+|\\-)(\\d+)"};
		int currentOperate = 0;
		Pattern pattern;
		Matcher matcher;
		
		while (true){
			// First check if any operator in the statement
			pattern = Pattern.compile("\\D");
			matcher = pattern.matcher(s);
			// Have match '+', '-', '*', '/'
			if (matcher.find()){
				pattern = Pattern.compile(operatorPriority[currentOperate]);
				matcher = pattern.matcher(s);
				
				if (matcher.find()){
					String a = matcher.group(1);
					String b = matcher.group(2);
					String c = matcher.group(3);
					String abc = a + b + c;
					int i = 0;
		
					switch (b){
					case "*":
						i = Integer.parseInt(a) * Integer.parseInt(c);
						break;
					case "/":
						i = Integer.parseInt(a) / Integer.parseInt(c);
						break;
					case "+":
						i = Integer.parseInt(a) + Integer.parseInt(c);
						break;
					case "-":
						i = Integer.parseInt(a) - Integer.parseInt(c);
						break;
					}
					System.out.println(s.replace(s.indexOf(abc), 
					                    s.indexOf(abc) + abc.length(), i + ""));
				}
				else
					currentOperate++;
			}
			else
				break;
		}
	}

版权声明:
作者:bin
链接:https://ay123.net/mystudy/543/
来源:爱影博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>