java理解异常 Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException: 1

首先这个问题是属于数组越界的问题

举个例子

有txt文件,要显示里面分隔符----后面的内容

 其中java的核心代码为

            FileReader fileReader=new FileReader(file);
            reader=new BufferedReader(fileReader);    //缓存类BufferedReader类构造方法
            String line;
            int i=1;
            while ((line=reader.readLine())!=null){
                String[] strs=line.split("----");
                    System.out.println(strs[1]);
            }

运行提示出现错误

原因

用split去除分隔符过后,会将分隔符两侧的字符串放在字符串数组中,而第一行分隔符----后面无内容。导致第一行分割后没有strs[1],即数组越界。

(使用split方法时,分隔符侧边无内容时,不会产生相应的数组空间)

String[] strs=line.split("----");

对于这段代码,我的改法是加入if判断数组的长度,如果数组长度大于等于2时,再进行下一步的操作。

下面的改后的核心代码。

            FileReader fileReader=new FileReader(file);
            reader=new BufferedReader(fileReader);    //缓存类BufferedReader类构造方法
            String line;
            int i=1;
            int b=0;
            while ((line=reader.readLine())!=null){
                String[] strs=line.split("----");
                b= strs.length;
                if(b>=2) {
                    System.out.println(strs[1]);
            }

对于其他情况下产生数组越界的情况,可以根据实际情况进行修改。

你可能感兴趣的:(java,java,开发语言)