从命令行得到5个整数,放入一整型数组,然后打印输出,要求:如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参数不足5个的异常(数组越界),显示“请输入至少5个整数”。
代码如下:
public class PrintNum { public static void main(String[] args) {
int num[] = null;
int i = 0;
try {
for (i = 0; i < 5; i++)
num[i] = Integer.parseInt(args[i]);
} catch (NumberFormatException e) {
System.out.println("请输入整数");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(" 请至少输入5个数");
}
for (i = 0; i < args.length; i++)
System.out.println(args[i]);
}
}===================================================================================
结果直接是请至少输入5个数 ,而我想是在键盘输入后再判断
Integer[] num = new Integer[5];
int i = 0;
try {
for (i = 0; i < 5; i++)
num[i] = Integer.parseInt(args[i]);
for (i = 0; i < args.length; i++)
System.out.println(args[i]);
}
catch (NumberFormatException e) {
System.out.println("请输入整数");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(" 请至少输入5个数");
}
}
args会被初始化成["a", "b", "c"]。如果是 java PrintNum
args就是一个长度为0的数组。 程序当然会产生ArrayIndexOutOfBounds。如果需要交互式的输入,可以查一下java.util.Scanner 和 java.io.Console的用法。
um[i] = Integer.parseInt(args[i]);能这样用吗?
先转到PrintNum.class文件所在的路径
Java PrintNum 1 2 3 4 5
Scanner s = new Scanner(System.in);
System.out.println("请至少输入5个数,以逗号分隔:"); String nums = s.nextLine();
String[] num=nums.split(",");
//任意你需要的判断
for(int i=0;i<5;i++){
System.out.println(num[i]);
}
}