好现在抛开异常的知识点和增强for循环的知识点不管,直接来到 pwd[idx] = n.substring;这一行代码 如何理解 可以知道,将names遍历第一次为Thomas string会自动转化成字符串,然后使用substring来讲n截取(2,6)下标为2(包括2)到6之间的字符串。得到的是omas 赋值给pwd[0]idx++;这样子pwd[0]就为omas ,第二次遍历为Peter 同样用substring来截取,由于Peter的长度只有五位,所以substring截取不到出现了异常。代码就直接走异常输出Invalid Name 走完trycatch块,进行下面的for循环遍历pwd数组 pwd数组 用脚指头想都可以想出来 它的值为 "pwd[0]=omas pwd[1]=null pwd[2] =null "。

Java substring原理及使用方法实例