java编写一个方法,将一个字符串作为参数, 该字符串具有符号,操作数 形式的算术表达式, 其中符号是加法或减法运算,操作数是整数,输出运算结果。 如果操作数不是数值,则程序不应因错误而失败。 为此,您需要编写一个异常处理程序来捕获非数字值。 该程序应该向控制台打印一条关于错误类型操作数的消息,并且不再输出运算结果。 使用 NumberFormatException。
时间: 2024-01-21 10:16:46 浏览: 130
下面是一个示例代码,可以实现您要求的功能:
```java
public static void calculate(String expression) {
String[] tokens = expression.split("\\s+");
if (tokens.length != 3) {
System.out.println("Invalid expression!");
return;
}
try {
int a = Integer.parseInt(tokens[0]);
int b = Integer.parseInt(tokens[2]);
char operator = tokens[1].charAt(0);
int result;
switch (operator) {
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
default:
System.out.println("Invalid operator!");
return;
}
System.out.println("Result: " + result);
} catch (NumberFormatException e) {
System.out.println("Invalid operand: " + e.getMessage());
}
}
```
该方法首先将输入的算术表达式按空格分隔成三个字符串,分别表示操作数、运算符和操作数。如果分割后的字符串数量不是3,则表示表达式无效,程序直接返回。接着,使用 `Integer.parseInt` 方法将操作数转换为整数,如果转换过程中发生了 `NumberFormatException` 异常,则表示操作数不是数值,程序将捕获异常并打印一条错误消息。最后,根据运算符计算结果并输出。
阅读全文