java编写一个程序,由用户输入一组字符串,字符串中包含“+”,“-”,数字,若干空格,以及其他符号。程序需要在字符串中只有数字和“+”,“-”时进行加减法运算。而当字符串中有其他符号时,则输出该符号所在的前后空格之间的字符串且不再进行加减法运算。忽略空格。使用NumberFormatException
时间: 2024-03-03 21:51:10 浏览: 58
好的,以下是一个简单的 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 input = scanner.nextLine();
String[] tokens = input.split("\\s+"); // 利用正则表达式分割字符串,去掉空格
int result = 0;
boolean flag = true; // 判断是否进行加减法运算
for (String token : tokens) {
if (token.equals("+")) {
flag = true;
} else if (token.equals("-")) {
flag = false;
} else {
try {
int num = Integer.parseInt(token);
if (flag) {
result += num;
} else {
result -= num;
}
} catch (NumberFormatException e) {
// 当出现非数字的情况时,输出该符号所在的前后空格之间的字符串
System.out.println("出现非数字的情况:" + token);
}
}
}
System.out.println("计算结果为:" + result);
}
}
```
例子:
```
请输入一组字符串:12 + 34 - 56 + 78 a bc - 90
出现非数字的情况:a
出现非数字的情况:bc
计算结果为:68
```
在这个例子中,程序会读入一组字符串 `12 + 34 - 56 + 78 a bc - 90` ,然后去掉其中的空格,分割成一个个的字符串。接着,程序会根据字符串是否是 `+` 或 `-` 来判断是否进行加减法运算,如果是数字,则将其加入运算结果中。当出现非数字的情况时,程序会输出该符号所在的前后空格之间的字符串。最终,程序会输出计算结果 `68`。
阅读全文