.split ("\") не работает, а также ошибка arrayIndexOitOfBoundsException: 1 - PullRequest
0 голосов
/ 02 мая 2019
String dateofbirth = ((JTextField)jDateChooser1.getDateEditor().getUiComponent()).getText();
        System.out.println(""+dateofbirth);

        String [] dob= dateofbirth.split("/");
       System.out.println(""+dob[0]);
       System.out.println(""+dob[1]);
       System.out.println(""+dob[2]);

Ответы [ 3 ]

0 голосов
/ 02 мая 2019

Вы должны использовать индекс массива из связанной исключительной ситуации try catch.

try {
      String [] dob= dateofbirth.split("/");
       System.out.println(""+dob[0]);
       System.out.println(""+dob[1]);
       System.out.println(""+dob[2])

catch(ArrayIndexOutOfBoundsException exception) {
    handleTheExceptionSomehow(exception);
}
0 голосов
/ 02 мая 2019

похоже, что массив dob имеет только один элемент и в нем нет индекса 1. Вот почему вы видите java.lang.ArrayIndexOutOfBoundsException: 1 Индекс начинается с 0.

Используйте циклическое перемещение для перемещения по массиву, чтобы вы могли динамически обрабатывать ваш вариант использования в зависимости от размера массива. Чтобы привести пример, см. Ниже.

Пример

        String input = "abc/def/ghi/jkl";
        String[] matrix = input.split("/");

        /* Print each letter of the string array in a separate line. */
        for(int i = 0; i < matrix.length; ++i) {
             System.out.println(matrix[i]);
        }

Это даст вывод, как,

abc
def
ghi
jkl

Таким образом, вы можете избежать встречи с java.lang.ArrayIndexOutOfBoundsException:

0 голосов
/ 02 мая 2019

Вам необходимо проверить правильность формата dateofbirth и предотвратить исключение путем проверки длины массива.

String [] dob= dateofbirth.split("/");

if(dob != null && dob.length >=3){
       System.out.println(""+dob[0]);
       System.out.println(""+dob[1]);
       System.out.println(""+dob[2]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...