Я вставляю значения в мою командную строку ... целые числа, которые вводятся, будут вставлены в мой вектор, а такие строки, как "собака" и т. Д. Будут перехватываться NumberFormatException. Тем не менее, в моем коде я получаю ArrayIndexOutOfBoundsException ... Я понимаю, почему, но как я могу предотвратить это?
Я хочу, чтобы мой код распечатывал, что вектор принимает целые числа, но он отклоняет строки, и продолжает читать мой ввод в командной строке.
Дополнительная проблема, с которой я столкнулся ... как я могу получить ошибку, из-за которой строка печатается ?? Мой код дает мне «Для входной строки:« собака »», когда я просто хочу «собака»
int i;
int result;
Vector numbers = new Vector();
for (i = 0; i < args.length; i++) {
try {
result = Integer.parseInt(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());
}
}
Пример ввода: 11 22 33 собака 44 кошка 55 66
**
Мой вывод:
Метод преобразования говорит, что целое число в порядке - 11
Метод преобразования говорит, что целое число в порядке - 22 * 1018 *
Метод преобразования говорит, что целое число в порядке - 33
Блок Catch говорит аргумент для входной строки: «cat» игнорируется, потому что для входной строки: «cat»
Метод преобразования говорит, что целое число в порядке - 44
Исключение в потоке "main" java.lang.ArrayIndexOutOfBoundsException: 4> 3
at java.base/java.util.Vector.insertElementAt(Vector.java:619)
at java.base/java.util.Vector.add(Vector.java:857)
at exceptionalcommandline.ExceptionalCommandLine.main(ExceptionalCommandLine.java:16)
**
Ожидаемый результат:
Преобразователь метод говорит целое число в порядке - 11
Преобразователь метод говорит целое число в порядке - 22 * 1035 *
Преобразователь метод говорит целое число в порядке - 33
Блок Catch говорит, что аргумент "cat" игнорируется, потому что "cat"
Метод преобразования говорит, что целое число в порядке - 44
Блок Catch говорит, что аргумент "собака" игнорируется, потому что "собака"
Преобразователь метод говорит целое число в порядке - 55
Метод преобразования говорит, что целое число в порядке - 66