日期:2014-05-20  浏览次数:20851 次

数组引用越界,异常处理问题
引用一个数组,不知道数组边界,怎么进行判断,非得要遍历吗?
怎么引用的数组越界了?

------解决方案--------------------
使用前加数组大小判断
------解决方案--------------------
不懂,数据的长度不是可以通过.length获得吗
------解决方案--------------------
可以通过 .length 来获取数组长度
------解决方案--------------------
其实还有个办法,就是不要用Java原生的数组[],而改用泛型的ArrayList这种容器,然后用iterator就可以很轻松的遍历
------解决方案--------------------
数据库查询,不建议使用数组的,用arraylist最好。
java数组要不直接初始化时候直接定义固定维数、长度,要不先要声明维数、长度,没有动态数组的说法,不像C++还可以在申请空间,java只有重新拷贝了。
只要数组赋值成功,那它的行数为,str.length,列数为str[0].length

而且在sql中,本来就有一个计行数的方法,只不过,用了以后,要把游标还回去而已
------解决方案--------------------
  for (int varnum = 1; varnum <= ColumnNum; varnum++) {                     
Content[i][varnum] = this.getString(rs.getString(varnum));

你的varnum是从1 开始的,改成从0开始的试试。

你的嵌套循环中,数组的下标没用设置好。
此外,不建议用多维数组
------解决方案--------------------
可能是读取数据库的时候,他还会hashnaxt一行数据,所以你要长度加一
------解决方案--------------------
引用:
引用:for (int varnum = 1; varnum <= ColumnNum; varnum++) {                     
Content[i][varnum] = this.getString(rs.getString(varnum));

你的varnum是从1 开始的,改成从0开始的试试。
……

首先需要问题定位:
通过你的帖子,我得到的信息:假如你从数据库中查询结果为2行2列。你想要把查询结果放到二维字符串数组里面。
问题:你初始化的二维字符串数组在存放数据的时候报了数组越界问题。
原因推断:你没有保证查询出来的2行2列正确的放入到二维字符串数组中。调试下你原来的程序吧。从content[0][0],content[0][1],content[1][0],content[1][1]这个四个元素逐一检查。
报错产生的错误信息是最好的提示:数组越界,这个就已经告诉你真正原因了。你所要做的,是找到你什么地方用错了