import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Pattern;

public class Main {
	private static String pattern = "^-?[0-9]+";

	public static void main(String[] args) {

		ArrayList<Integer> inputs = new ArrayList<Integer>();
		Scanner in = new Scanner(System.in);
		String line = in.nextLine();
		if (line != null && !line.isEmpty()) {
			int res = resolve(line.trim());
			System.out.println(String.valueOf(res));
		}
	}

	// write your code here
	public static int resolve(String expr) {
		int[] stack = new int[16];
		int top = -1;
		String[] datas = expr.split(" ");

		for (int i = 0; i < datas.length; i++) {
			if (Pattern.matches(pattern, datas[i])) {
				if (top == 15) {
					return -2;
				}
				top++;
				stack[top] = Integer.parseInt(datas[i]);
			} else {
				switch (datas[i]) {
				case "^":
					if (top == -1) {
						return -1;
					}
					stack[top]++;
					break;
				case "+":
					if (top < 1) {
						return -1;
					}
					int a = stack[top];
					top--;
					stack[top] += a;
					break;
				case "*":
					if (top < 1) {
						return -1;
					}
					int b = stack[top];
					top--;
					stack[top] *= b;
					break;
				}
			}
		}
		if (top < 0) {
			return -1;
		}
		return stack[top];
	}
}
我这个AC了,字符串匹配的没AC,求大神代码