.split("\") 不起作用,并且还有一个错误 arrayIndexOitOfBounds

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]);


慕码人2483693
浏览 106回答 3
3回答

潇潇雨雨

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

炎炎设计

似乎数组 dob 只有一个元素,其中没有索引 1。这就是为什么您会看到java.lang.ArrayIndexOutOfBoundsException: 1 索引从 0 开始。使用循环来导航数组,以便您可以根据数组大小动态处理用例。举个例子,见下文。例子&nbsp; &nbsp; &nbsp; &nbsp; String input = "abc/def/ghi/jkl";&nbsp; &nbsp; &nbsp; &nbsp; String[] matrix = input.split("/");&nbsp; &nbsp; &nbsp; &nbsp; /* Print each letter of the string array in a separate line. */&nbsp; &nbsp; &nbsp; &nbsp; for(int i = 0; i < matrix.length; ++i) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(matrix[i]);&nbsp; &nbsp; &nbsp; &nbsp; }这将给出如下输出,abcdefghijkl这样可以避免遇到java.lang.ArrayIndexOutOfBoundsException:

慕盖茨4494581

您应该使用数组索引越界异常尝试捕获。try {&nbsp; &nbsp; &nbsp; String [] dob= dateofbirth.split("/");&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(""+dob[0]);&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(""+dob[1]);&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(""+dob[2])catch(ArrayIndexOutOfBoundsException exception) {&nbsp; &nbsp; handleTheExceptionSomehow(exception);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java