使用异常处理输入机制,让程序变得更健壮。 main方法: 输入n,创建大小为n的int数组。 输入n个整数,放入数组。输入时,有可能输入的是非整型字符串,这时候需要输出异常信息,然后重新输入。 使用Arrays.toString输出数组中的内容。 输入样例: 5 1 2 a b 4 5 3 输出样例: java.lang.NumberFormatException: For input string: "a" java.lang.NumberFormatException: For input string: "b" [1, 2, 4, 5, 3]
时间: 2024-03-23 11:36:28 浏览: 50
7.1 异常处理与程序健壮性1
好的,根据您的要求,我可以为您提供以下代码示例:
```java
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = 0;
do {
try {
System.out.print("请输入一个正整数n:");
n = scanner.nextInt();
} catch (InputMismatchException e) {
System.out.println("你输入的不是正整数!");
}
scanner.nextLine(); // 清空换行符
} while (n <= 0);
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
boolean flag = true;
do {
try {
System.out.print("请输入第" + (i + 1) + "个整数:");
String str = scanner.nextLine();
nums[i] = Integer.parseInt(str);
flag = false;
} catch (NumberFormatException e) {
System.out.println("你输入的不是整数!");
}
} while (flag);
}
System.out.println(Arrays.toString(nums));
}
}
```
在上面的代码中,我们先让用户输入一个正整数n,用来确定数组的大小。如果用户输入的不是正整数,我们就会抛出`InputMismatchException`异常,然后重新让用户输入。
接着,我们创建了大小为n的int数组,并使用`for`循环来获取n个整数。在获取每一个整数的时候,我们使用`nextInt()`方法无法满足要求,因为如果用户输入的不是整数,就会一直阻塞在这里。所以我们使用`nextLine()`方法获取一行用户输入,并进行类型转换。如果用户输入的不是整数字符串,就会抛出`NumberFormatException`异常,我们在`catch`语句块中处理这个异常,并输出错误信息,然后重新让用户输入。
最后,我们使用`Arrays.toString()`方法输出数组中的内容。
阅读全文