java编写一个方法,输入一个字符串,该方法将具有算术表达式的字符串作为参数,其形式为符号和操作数 , 其中 符号是加法或减法运算,操作数是整数,则计算数值并输出。如果操作数不是数值,则程序不应失败。而是需要编写一个将捕获非数字值的异常处理程序。 程序应向控制台显示有关错误类型的操作的消息。并不在计算数值
时间: 2024-02-19 10:58:41 浏览: 129
java代码-写一个程序,从输入的字符串中,截取出最长数字串,并打印出来。 例如:输入"abcd12345你好125**123456789ZZ",输出"123456789"
好的,以下是一个Java方法,它将具有算术表达式的字符串作为参数,并计算数值并输出结果。如果操作数不是数字,则会抛出NumberFormatException异常,并在控制台上显示一个错误消息。代码如下:
```java
public static void calculate(String expression) {
String[] tokens = expression.split("\\s+");
int result = 0;
int num = 0;
char operator = '+';
for (String token : tokens) {
try {
num = Integer.parseInt(token);
switch (operator) {
case '+':
result += num;
break;
case '-':
result -= num;
break;
}
} catch (NumberFormatException e) {
System.out.println("Error: " + token + " is not a number.");
return;
}
if (token.length() == 1 && "+-".indexOf(token.charAt(0)) != -1) {
operator = token.charAt(0);
}
}
System.out.println("计算结果是:" + result);
}
```
这个方法将算术表达式作为参数,并直接输出结果。它使用一个字符串数组来分割表达式,然后循环每个标记来计算结果。如果标记不是数字,则会抛出一个NumberFormatException异常,并在控制台上显示一个错误消息。操作符由一个字符变量存储,并在每次迭代中更新。最后,方法输出计算结果。
阅读全文