java编写一个程序,用于计算 x op y这样的表达式的值,表达式从命令行输入,其中 op 为+ - x /%几种运算符之一,x和y代表两个整数。
时间: 2024-12-20 16:30:42 浏览: 19
为了编写一个Java程序来计算这种类型的表达式,你可以创建一个简单的命令行应用。首先,我们需要定义一个方法来解析输入并执行相应的运算。这里是一个基本的示例:
```java
import java.util.Scanner;
public class ExpressionEvaluator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个包含整数和运算符的表达式(例如:5 + 3 或者 10 % 2):");
String input = scanner.nextLine();
int result;
try {
// 解析输入字符串
String[] tokens = input.split(" ");
if (tokens.length != 3 || !isNumber(tokens[0]) || !isNumber(tokens[2])) {
throw new IllegalArgumentException("无效的表达式");
}
int x = Integer.parseInt(tokens[0]);
char operator = tokens[1].charAt(0); // 我们只取第一个字符
int y = Integer.parseInt(tokens[2]);
switch (operator) {
case '+':
result = x + y;
break;
case '-':
result = x - y;
break;
case '*':
result = x * y;
break;
case '/':
if (y == 0) {
throw new ArithmeticException("除数不能为零");
}
result = x / y;
break;
case '%':
if (y == 0) {
throw new ArithmeticException("除数不能为零");
}
result = x % y;
break;
default:
throw new IllegalArgumentException("不支持的运算符");
}
System.out.printf("结果是: %d%n", result);
} catch (NumberFormatException e) {
System.out.println("输入的不是有效的整数");
} catch (IllegalArgumentException e) {
System.err.println(e.getMessage());
} finally {
scanner.close();
}
}
private static boolean isNumber(String s) {
return s.matches("-?\\d+");
}
}
```
阅读全文