java 给定一个算术表达式的字符串;其中只包含两个运算符:'+','*',编写一个计算表达式的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 给定一个算术表达式的字符串;其中只包含两个运算符:'+','*',编写一个计算表达式的函数相关的知识,希望对你有一定的参考价值。

public class Solution {

	public static void main(String[] args) {
		String[] input = { "5", "4+20*3", "20*3+4", "20+20+20+4", "4*4*4" };
		for (String test : input)
			System.out.printf("%s = %d%n", test, eval(test));
	}

	private static int eval(String input) {
		int sum = 0;
		int multiplication = 1;
		String currentNumber = "";

		if (input.matches("\\d+"))
			return Integer.parseInt(input);

		for (int i = 0; i < input.length(); i++) {
			char currentChar = input.charAt(i);

			switch (currentChar) {
				case '+':
					sum += multiplication * Integer.parseInt(currentNumber);
					multiplication = 1;
					currentNumber = "";
					break;
	
				case '*':
					multiplication *= Integer.parseInt(currentNumber);
					currentNumber = "";
					break;
	
				default:
					currentNumber += currentChar;
					break;
			}
		}

		return sum += multiplication * Integer.parseInt(currentNumber);
	}
}

以上是关于java 给定一个算术表达式的字符串;其中只包含两个运算符:'+','*',编写一个计算表达式的函数的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P1981 表达式求值

在Java中,设计一个算法,判断一个算术表达式中的括号是不是配对。

刷过一题之NOIP2013表达式求值

2013表达式求值

1354括弧匹配检验

2括弧匹配检验