黑马程序员技术交流社区
标题:
总是报错说角标越界
[打印本页]
作者:
李跃达
时间:
2013-1-31 12:51
标题:
总是报错说角标越界
BufferedReader bufr = new BufferedReader(new FileReader("data.txt"));
String line = null;
tm = new TreeMap<String,String>();
while((line=bufr.readLine())!=null)
{
System.out.println(line);
String[] str=line.split("/");
tm.put(str[0],str[1]);//这里报错,角标越界
}
bufr.close();
复制代码
保证文件的连接没有问题,而且文件中确实有/符号,并且确实是英文半角符号,但是还是说角标越界,这是为什么
作者:
黑马刘向阳
时间:
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