我的目标是在命令行中键入几个数字和单词,并让我的程序通过将它们分配给向量来将单词与单词分开,并为输入的单词赋予“NumberFormatException”。最后,我想显示我的矢量值。
当我的命令行只包含整数“12 44 55 ...等”时,代码完美无缺,但是当我在“猫帽狗”中添加单词时,它会给我一个错误并结束我的程序。
Vector numbers = new Vector();
for (i = 0; i < args.length; i++) {
try {
result = Integer.valueOf(args[i]);
System.out.println("Converter method says integer OK - " + result);
numbers.add(i, result);
} catch (NumberFormatException e) {
System.out.println("Catch block says the argument" + e.getMessage() + "is ignored because" + e.getMessage());
}
}
System.out.println();
System.out.println("Vector contents are:");
for (i = 0; i < args.length; i++) {
System.out.println("Item " + i + " is " + numbers.get(i));
}
}
对于命令行输入:11 22 hat 99 88 frog 77
转换器方法表示整数OK - 11
转换器方法表示整数OK - 22
Catch块表示因为帽子而忽略了“hat”这个参数
转换器方法表示整数OK - 99
转换器方法表示整数OK - 88
Catch block说因为青蛙而忽略了“青蛙”这个论点
转换器方法表示整数OK - 77
矢量内容是:
项目0是11
第1项是22
第2项是99
第3项是88
第4项是77
第5项是67
感谢您提供源代码。
您打印的值最多为给定参数的长度,但您收集的数字仅等于numbers
的长度。
for (i = 0; i < ((( args.length ))); i++) { // wrong
System.out.println("Item " + i + " is " + numbers.get(i));
}
改成
for (i = 0; i < numbers.size(); i++) {
System.out.println("Item " + i + " is " + numbers.get(i));
}
或者只使用内置打印,它会为您列出数组列表值
System.out.println( numbers );