如何使用Java语言以面向对象的思想去实现这样的一个简单的计算器呢?
我写了两种方法,
做法如下所示:
方法一:
import java.util.Scanner;
public class 计算器 {
public static void main(String[] args) {
System.out.print("请输出第一个数:");
Scanner scanner = new Scanner(System.in);
String x = scanner.nextLine();
System.out.println("请输入算术运算符(+ ,- ,* ,/)");
String o = scanner.nextLine();
System.out.print("请输出第二个数:");
String y = scanner.nextLine();
double Result = number(Double.parseDouble(x),Double.parseDouble(y),o);
System.out.println(Result);
}
public static double number(double num1, double num2, String opr){
double result =0;
switch (opr){
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
}
return result;
}
}
方法二:
import java.util.Scanner;
public class 计算器方法二 {
public static void main(String[] args) {
System.out.print("==========================================");
System.out.println("请输入一个算术表达式,如:25*50");
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
StringBuffer buffer = new StringBuffer();
StringBuffer buffer1 = new StringBuffer();
char opr = ' ';
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == '+' || str.charAt(i) == '-' //charAt(i)函数用于获取字符串中第i位置的字符
|| str.charAt(i) == '*' || str.charAt(i) == '/') {
opr = str.charAt(i);
for (int j = i + 1; j < str.length(); j++) {
buffer1.append(str.charAt(j));
}
break;
} else {
buffer.append(str.charAt(i));
}
}
String c = buffer.toString();
String d = buffer1.toString();
double a = Double.parseDouble(c);
double b = Double.parseDouble(d);
double sum = 0;
if (opr == '+') {
sum = a + b;
}
if (opr == '-') {
sum = a - b;
}
if (opr == '*') {
sum = a * b;
}
if (opr == '/') {
sum = a / b;
}
System.out.println("程序运算中...");
System.out.println(c+opr+d+"="+sum);
System.out.print("==========================================");
}
}
注意:只可以计算加减乘除哦~