.split(“ \”)无法正常工作,并且还会出现错误arrayIndexOitOfBoundsException:1

时间:2019-05-02 15:17:49

标签: java netbeans

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 :(得分:0)

您需要检查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]);
}

答案 1 :(得分:0)

您应该使用数组索引超出范围的异常尝试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);
}

答案 2 :(得分:0)

似乎数组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: