输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9. 保证表达式都是合法的,排列规则如样例所示。
输出一个数,即表达式的值
3+5*7
56
Scanner sc = new Scanner(System.in); System.out.println("请输入表达式"); String eqExp = sc.next(); eqExp = eqExp.trim(); int sum = 0; char lastExp = 0; for (int i = 0;i < eqExp.length();i++) { if (i % 2 == 0) { int num = Integer.parseInt(eqExp.substring(i,i+1)); if (i == 0 ) { sum += num; continue; } if ('+' == lastExp) { sum += num; } else if ('-' == lastExp) { sum -= num; } else if ('*' == lastExp) { sum *= num; } else { System.out.println("表达式有误"); return; } } else { lastExp = eqExp.charAt(i); } } System.out.println(sum);
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next(); sc.close(); int tmp = s.charAt(0) - '0'; for (int i = 1; i < s.length() - 1; ) { char operate = s.charAt(i); i ++; StringBuilder sb = new StringBuilder(); while ( i < s.length() && s.charAt(i) >= '0' && s.charAt(i) <= '9') { sb.append(s.charAt(i)); i ++; } int r = Integer.valueOf(sb.toString()); switch (operate) { case '+': tmp = tmp + r; break; case '-': tmp = tmp - r; break; case '*': tmp = tmp * r; break; case '/': tmp = tmp / r; break; } } System.out.println(tmp); } }