使用Java语言编写一个计算器,如果输入的是字符串那么请计算字符串里面的表达式,其中操作符和操作数由0到多个空格隔开
时间: 2024-03-09 10:45:26 浏览: 33
好的,我可以给您提供一个简单的 Java 代码示例,实现一个可以计算表达式的计算器。以下是示例代码:
```java
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入表达式:");
String expression = scanner.nextLine().trim(); // 去除前后空格
// 如果输入的是空串,则提示重新输入
while (expression.length() == 0) {
System.out.print("表达式不能为空,请重新输入:");
expression = scanner.nextLine().trim();
}
// 计算表达式
double result = calculate(expression);
System.out.println("计算结果为:" + result);
}
/**
* 计算表达式
* @param expression 要计算的表达式
* @return 计算结果
*/
public static double calculate(String expression) {
double result = 0; // 最终计算结果
String[] parts = expression.split(" "); // 将表达式按空格分割成操作数和操作符
if (parts.length == 1) { // 如果表达式只有一个操作数,则直接返回该操作数
return Double.parseDouble(parts[0]);
}
// 初始化第一个操作数和操作符
double num1 = Double.parseDouble(parts[0]);
char operator = parts[1].charAt(0);
// 循环计算每个操作数和操作符
for (int i = 2; i < parts.length; i++) {
if (i % 2 == 0) { // 如果是操作数
double num2 = Double.parseDouble(parts[i]);
switch (operator) { // 根据操作符计算结果并更新操作数和操作符
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
}
num1 = result; // 更新操作数
} else { // 如果是操作符
operator = parts[i].charAt(0); // 更新操作符
}
}
return result;
}
}
```
您可以在控制台输入表达式进行计算,例如输入 `2 + 3 * 4`,输出结果为 `14.0`。这个计算器还支持空格分隔的多个操作数和操作符,例如输入 `1 + 2 - 3 * 4 / 5`,输出结果为 `0.6`。