java编写一个方法,将一个字符串作为参数, 该字符串具有符号,操作数 形式的算术表达式, 其中符号是加法或减法运算,操作数是整数,输出运算结果。 如果操作数不是数值,则程序不应因错误而失败。 为此,您需要编写一个异常处理程序来捕获非数字值。 该程序应该向控制台打印一条关于错误类型操作数的消息,并且不再输出运算结果。 使用 NumberFormatException。
时间: 2024-01-21 11:16:43 浏览: 40
EL表达式包括字符串处理,时间日期的格式化,数字处理
5星 · 资源好评率100%
可以使用以下方法实现:
```java
public static void calculate(String expression) {
String[] parts = expression.split("\\s+"); // 以空格为分隔符拆分表达式
int result = 0;
try {
result = Integer.parseInt(parts[0]); // 将第一个操作数转换为整数
for (int i = 1; i < parts.length; i += 2) {
char operator = parts[i].charAt(0); // 获取运算符
int operand = Integer.parseInt(parts[i + 1]); // 将下一个操作数转换为整数
if (operator == '+') {
result += operand;
} else if (operator == '-') {
result -= operand;
} else {
System.out.println("无效的运算符: " + operator);
return; // 如果出现无效的运算符,则不再输出结果
}
}
System.out.println("结果: " + result);
} catch (NumberFormatException e) { // 如果操作数不是数值,则捕获 NumberFormatException 异常
System.out.println("无效的操作数: " + e.getMessage());
}
}
```
示例用法:
```java
calculate("5 + 2 - 3"); // 输出结果: 4
calculate("10 + 20 * 30"); // 输出错误消息: 无效的运算符: *
calculate("2 + hello - 3"); // 输出错误消息: 无效的操作数: For input string: "hello"
```
阅读全文