6 回答
TA贡献1833条经验 获得超4个赞
i的初始值为ao.indexOf("c"),即2;
在循环体中,只有当ao.charAt(j)为f时才会给i赋值,这时i为5,仍然符合i < 6,循环仍然会执行。也即,这里会有死循环。而j的值每循环一次就会增加1,那么执行ao.charAt(j)时,当然会有超出边界的异常。
TA贡献1779条经验 获得超6个赞
为什么写 i=j ?
因为你想通过这个法子退出for循环
只可惜呀,人算不如天算啊,你算错了。差了1
if语句起作用时,j=5,此时i也就等于5了。而ao.indexOf("g")等于6。for循环没有退出去,而是继续运行。j继续自增。当增加到8时,再次进入for循环,首先执行if语句里的ao.charAt(j)。计算它的时候报的错,因为ao共有8个字符,而字符坐标从0开始记,所以字符最大坐标为7.而现在你要找坐标为8的字符,所以抛了这么个异常。
TA贡献2051条经验 获得超10个赞
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()); //截取子字符串
- 6 回答
- 0 关注
- 13250 浏览
添加回答
举报