7-4 jmu-Java-06异常-02-使用异常机制处理异常输入
分数 5
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]
代码如下:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int [] nums = new int[n];
int i = 0;
while (i < n){
try{
int number = isInt(scanner);
nums[i] = number;
i++;
}catch (NumberFormatException e){
System.out.println(e);
}
}
System.out.println(Arrays.toString(nums));
}
public static int isInt(Scanner scanner){
if(!scanner.hasNextInt()){
throw new NumberFormatException("For input string: \""+ scanner.next() +"\"");
}
return scanner.nextInt();
}
}
这个题其实并不难,它引起我注意的地方是他要判断输入数的类型是不是int型,这就得用到了hasNextInt()的方法。这个方法详细说明在网上都有,我就不多加赘述了。其他方面就不多说了,都很简单。