输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有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);
}
}