思路
把字符串用 + 和 - 号分成 多个字符串
分开的字符串中,只有*号。
使用 split 将字符串拆分
然后计算,返回
题目数据没考虑受字符为运算符。
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static int cal(String s) { String[] str = s.split("\\*"); int ans = 1; for (int i = 0; i < str.length; i++) { ans *= Integer.parseInt(str[i]); } return ans; } public static void main(String[] args) { Scanner in = new Scanner(System.in); while (true) { String str = in.next(); String str1 = str; StringBuilder sb = new StringBuilder(str); sb.append("+"); str = sb.toString(); if (str.equals("END+")) break; int l = 0; int r = 1; int ans = 0; // if(str.charAt(0) == '-' || str.charAt()) int flag = 1; while (r < str.length()) { if (str.charAt(r) == '+' || str.charAt(r) == '-' ) { if (flag == 1) ans += cal(str.substring(l, r)); else { ans -= cal(str.substring(l, r)); } l = r + 1; if (str.charAt(r) == '+') { flag = 1; } if (str.charAt(r) == '-') { flag = 0; } r++; } r++; } System.out.println(ans); } } }