寫一個支持四則運算的計算器,可以支持諸如“1 + 2 + 3”的表達式
第一版代碼:說明只能順序執行計算,沒有乘除括號等優先計算
import java.util.Scanner;
/**
* <p>ClassName: Calculator</p>
* <p>Description: 計算器</p>
* <p>Author: spring.zhang</p >
* <p>Date: 2020年4月23日</p>
*/
public class Calculator {
public static void main(String[] args) {
// 輸入運算表達式
Scanner in = new Scanner(System.in);
String s = in.next();
boolean flag = false; // 標識第一個數
double sum = 0; // 運算結果
char ch = '+'; // 用於記錄表達式最後一個運算符
StringBuilder str = new StringBuilder(); // 記錄運算的數
for (int i=0; i<s.length(); i++) {
if (s.charAt(i) == '+' || s.charAt(i) == '-' || s.charAt(i) == '*' || s.charAt(i) == '/') {
if(!flag){
flag = true;
sum+=Double.parseDouble(str.toString());
str = new StringBuilder();
}else{
if (ch == '+') {
sum += Double.parseDouble(str.toString());
} else if(ch == '-'){
sum -= Double.parseDouble(str.toString());
} else if(ch == '*'){
sum *= Double.parseDouble(str.toString());
} else if(ch == '/'){
sum/=Double.parseDouble(str.toString());
}
str = new StringBuilder();
}
ch = s.charAt(i);
} else {
str.append(s.charAt(i));
}
}
// 計算最後一個數
if (ch == '+') {
sum += Double.parseDouble(str.toString());
} else if(ch == '-'){
sum -= Double.parseDouble(str.toString());
} else if(ch == '*'){
sum *= Double.parseDouble(str.toString());
} else if(ch == '/'){
sum/=Double.parseDouble(str.toString());
}
System.out.println(sum);
}
}
輸出