-
潇潇雨雨
i的初始值为ao.indexOf("c"),即2;在循环体中,只有当ao.charAt(j)为f时才会给i赋值,这时i为5,仍然符合i < 6,循环仍然会执行。也即,这里会有死循环。而j的值每循环一次就会增加1,那么执行ao.charAt(j)时,当然会有超出边界的异常。
-
哆啦的时光机
为什么写 i=j ?因为你想通过这个法子退出for循环只可惜呀,人算不如天算啊,你算错了。差了1if语句起作用时,j=5,此时i也就等于5了。而ao.indexOf("g")等于6。for循环没有退出去,而是继续运行。j继续自增。当增加到8时,再次进入for循环,首先执行if语句里的ao.charAt(j)。计算它的时候报的错,因为ao共有8个字符,而字符坐标从0开始记,所以字符最大坐标为7.而现在你要找坐标为8的字符,所以抛了这么个异常。
-
四季花海
问题出在参数 j 的大小没有在 for 条件中控制,导致 out 需要增加条件 i<ao.indexOf("g") && j<ao.length()
-
小怪兽爱吃肉
java.lang.StringIndexOutOfBoundsException:字符串索引超出范围,越界了。你再看看你的程序是否存在这种问题。
-
侃侃无极
while(rs.next()){String max = rs.getString("maxint"); //获得最大的字段String maxi = max.substring(2,max.length()); //截取子字符串newmax = "CB" + String.valueOf(Integer.parseInt(maxi) + 1);}我估计是不是String max = rs.getString("maxint"); //获得最大的字段这句话没有获得到值 导致了 null或者 长度<3然后下面再 max.substring(2,max.length()); //截取子字符串
-
ITMISS
String maxi = max.substring(2,max.length());max字符串需要满足字符串长度大于等于2,包括不能为空值。这句话之前先进行判读if(max.length()>=2 && max!=null)