6 回答

TA貢獻1833條經(jīng)驗 獲得超4個贊
i的初始值為ao.indexOf("c"),即2;
在循環(huán)體中,只有當ao.charAt(j)為f時才會給i賦值,這時i為5,仍然符合i < 6,循環(huán)仍然會執(zhí)行。也即,這里會有死循環(huán)。而j的值每循環(huán)一次就會增加1,那么執(zhí)行ao.charAt(j)時,當然會有超出邊界的異常。

TA貢獻1779條經(jīng)驗 獲得超6個贊
為什么寫 i=j ?
因為你想通過這個法子退出for循環(huán)
只可惜呀,人算不如天算啊,你算錯了。差了1
if語句起作用時,j=5,此時i也就等于5了。而ao.indexOf("g")等于6。for循環(huán)沒有退出去,而是繼續(xù)運行。j繼續(xù)自增。當增加到8時,再次進入for循環(huán),首先執(zhí)行if語句里的ao.charAt(j)。計算它的時候報的錯,因為ao共有8個字符,而字符坐標從0開始記,所以字符最大坐標為7.而現(xiàn)在你要找坐標為8的字符,所以拋了這么個異常。

TA貢獻1811條經(jīng)驗 獲得超5個贊
問題出在參數(shù) j 的大小沒有在 for 條件中控制,導致 out 需要增加條件 i<ao.indexOf("g") && j<ao.length()

TA貢獻1852條經(jīng)驗 獲得超1個贊
java.lang.StringIndexOutOfBoundsException:字符串索引超出范圍,越界了。你再看看你的程序是否存在這種問題。

TA貢獻2051條經(jīng)驗 獲得超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 關注
- 13324 瀏覽
添加回答
舉報