A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 凝聚 中级黑马   /  2013-11-1 08:58  /  826 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 凝聚 于 2013-11-1 09:46 编辑

package Twenty;
import java.io.*;
import java.util.*;
public class Thirteen {
        public static void main(String[] args)throws IOException {
                 method1();
        }
public static void method1()throws IOException
{
BufferedReader bufr=new BufferedReader(new FileReader("D:\\File\\a\\a.txt"));
String line=null;
while((line=bufr.readLine())!=null)
{//System.out.println(line);
        String[]arr=line.split("=");
System.out.println(arr[0]+"....."+arr[1]);        
}
bufr.close();
}
}
这段代码显示错误为:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
        at Twenty.Thirteen.method1(Thirteen.java:15)
        at Twenty.Thirteen.main(Thirteen.java:6)

这是怎么回事啊还有这错误信息是什么意思啊?谢谢回答啊!

3 个回复

倒序浏览
本帖最后由 FFF 于 2013-11-1 09:25 编辑
  1. System.out.println(arr[0] + "....." + arr[1]);
复制代码
数组索引越界了。希望你再多看看Line方法。
  1.                 while ((line = bufr.readLine()) != null) {//
  2.                         System.out.println(line);
  3.                         System.out.println(line.split("Is"));
  4.                         String[] arr = line.split("Man");
  5.                         System.out.println(arr.length);
  6.                         System.out.println(arr[0]);
  7.                         //System.out.println(arr[0] + "....." + arr[1]);
  8.                 }
复制代码
我把代码改成这样子。什么问题都木有了。希望能帮到你
输出为:
FFFIsSuperMan  //读到的文件
[Ljava.lang.String;@1fb8ee3  //生成的数组的内存地址
1                                  //长度
FFFIsSuper                   //输出数组arr[0]

根本就木有arr[1],你输出那必然是异常。

评分

参与人数 1黑马币 +6 收起 理由
黄炳期 + 6 神马都是浮云

查看全部评分

回复 使用道具 举报
你好,这个异常是初学者比较常见的异常。ArrayIndexOutOfBoundsException:注意这个单词,字面意思就是数组引用超出界限,也就是我们常说的越界问题。比如,我们创建了一个数组 int a[] = new int[4] ;那么数组a只能存放四个元素,而数组的下标是从0开始的,也就是说,a[3]就是最后一个元素。当你给a[4]赋值,或者使用a[4]的时候,就出现了ArrayIndexOutOfBoundsException异常。请你自己核对。

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
数组越界的错误,String[]arr=line.split("=");这条语句将line分离成数组,如果line中没有“=”,数组的长度为1,arr[1]就越界了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马