首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.IndexOutOfBoundsException:索引: 4,大小:4

java.lang.IndexOutOfBoundsException:索引: 4,大小:4
EN

Stack Overflow用户
提问于 2010-10-07 21:16:52
回答 5查看 33.6K关注 0票数 1

如何修复此OutOfBoundsException

下面是我使用的代码:

代码语言:javascript
复制
 ResultSet rsTagCheck = stmt.executeQuery(
     "SELECT PARKING.XKRPRMT.XKRPRMT_PIDM, PARKING.XKRPRMT.XKRPRMT_STATUS, PARKING.XKRPRMT.XKRPRMT_EXPIRE_YR, PARKING.XKRPRMT.XKRPRMT_TAG FROM PARKING.XKRPRMT WHERE XKRPRMT_PIDM ='" + BannerID + "'");
 while (rsTagCheck.next()){
     String TagNum = rsTagCheck.getString("XKRPRMT_TAG");
     ArrayList<String> myTag = new ArrayList<String>();

     for (int i = 0; i < TagNum.length(); i++){
         myTag.add(TagNum);
         myTag.get(i + i);

我有点知道为什么我会得到这个错误,但我不确定如何解决这个问题。

EN

回答 5

Stack Overflow用户

发布于 2010-10-07 21:21:53

问题出在myTag.get(i+i)中的i+i部件。它适用于i=0,但是一旦执行i=1,就会抛出一个异常,因为您已经向myTag添加了两个元素,但是访问的是第三个元素(myTag.get(2))。

票数 12
EN

Stack Overflow用户

发布于 2010-10-07 21:24:32

通过对字符串TagNum进行迭代,可以使用for循环。您只需说:myTag.add(TagNum)

假设字符串TagNum有4个字符。您将字符串添加到列表中4次,但是当达到i=3时,您正在尝试检索位置3 + 1处的元素,但是列表中包含从0到3的元素。

另外,尝试将BannerID替换为?并相应地设置语句的参数。

票数 2
EN

Stack Overflow用户

发布于 2010-10-07 21:24:20

myTag.get(i + i);导致了异常。

第一次在循环中使用i0,在ArrayList中添加一个条目,然后调用get(0+0),这样就可以了。

在下一次迭代中,添加另一个元素(现在列表中总共有2个元素)并调用get(1+1),这会导致异常,因为您只有2元素,有效的索引是01

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3882014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档