黑马程序员技术交流社区

标题: 总是报错说角标越界 [打印本页]

作者: 李跃达    时间: 2013-1-31 12:51
标题: 总是报错说角标越界
  1. BufferedReader bufr = new BufferedReader(new FileReader("data.txt"));

  2.                         String line = null;
  3.                        
  4.                         tm = new TreeMap<String,String>();

  5.                         while((line=bufr.readLine())!=null)
  6.                         {
  7.                                 System.out.println(line);
  8.                                 String[] str=line.split("/");
  9.                                 tm.put(str[0],str[1]);//这里报错,角标越界
  10.                         }


  11.                         bufr.close();
  12.                
复制代码
保证文件的连接没有问题,而且文件中确实有/符号,并且确实是英文半角符号,但是还是说角标越界,这是为什么
作者: 黑马刘向阳    时间: 2013-1-31 13:19
String[] str=line.split("/");  改为   String[] str=line.split("//");  正则表达式表示 "/" 需要转义
作者: 杨杨    时间: 2013-1-31 13:29
把代码贴全我帮你看看 txt文件也贴出了tm 我估计有可能使编码的问题 gbk utf-8 我测试String line = "dsfsfdfd/dfsfs/dsfdsfsd";
            
            TreeMap tm = new TreeMap<String,String>();
            String[] str=line.split("/");
            tm.put(str[0], str[1]);
没问题
读取文件的时候注意编码
作者: 李跃达    时间: 2013-1-31 14:57
自己解决了,是因为我的data文件是从网页上直接复制,改的,可能有什么隐藏标记吧,我把所有的文字,重新复制一下,建立一个新的文本文件问题就得以解决




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2