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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李跃达 中级黑马   /  2013-1-31 12:51  /  1552 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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.                
复制代码
保证文件的连接没有问题,而且文件中确实有/符号,并且确实是英文半角符号,但是还是说角标越界,这是为什么

3 个回复

倒序浏览
String[] str=line.split("/");  改为   String[] str=line.split("//");  正则表达式表示 "/" 需要转义
回复 使用道具 举报
把代码贴全我帮你看看 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]);
没问题
读取文件的时候注意编码
回复 使用道具 举报
自己解决了,是因为我的data文件是从网页上直接复制,改的,可能有什么隐藏标记吧,我把所有的文字,重新复制一下,建立一个新的文本文件问题就得以解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马