作者byend (漫步)
看板java
标题Re: [问题] ArrayIndexOutOfBoundsException的问题
时间Wed Jul 25 15:29:05 2012
※ 引述《kuro44776 (羽岚)》之铭言:
: 小弟我手上有ㄧ段程式码如下
: 其中data是从某个档案中一行一行读出来的
: 资料内容大概是长这样 53:0.09082572629650118 54:0.09082572629650118 55:0.09082572629650118
: String []tokens = data.split(":| ");
: for(int i = 0 ; i < tokens.length; i = i+2)
: {
: hashmap.put(tokens[i], tokens[i+1]);
: }
: 但是在做这一段的时候 偶尔会碰到ArrsyIndexOutOfBoundsException
: 关於这一点就是我很纳闷的地方 因为档案内容是完全不会改变
: 照理说不会有第一次跑的时候可以过 但是第二次跑的时候却会有ERROR
: 求高手解答><
基本上你的程式码是对的, 会丢出这个例外, 是因为切出来的 token 不是
偶数个. 假设某些原因 本来资料一行只会切出六个 token, 但误切出
七个.. 回圈中的逻辑就会出错:
Round 1 取 0,1
Round 2 取 2,3
Round 3 取 4,5
Round 4 取 6,7 <-没有这个东西, 就丢出例外了
在处理资料档案的时候, 很常有这种鸟问题
可能的原因有断行符号,
建议改一下:
data.trim().split(":|\\s");
或者在回圈中检查一下 boundary. 顺便印出来.
看看资料中有哪些异常值...
有时候你的资料本身就不是成对的..也有可能..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 66.235.2.31