6 回答

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

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

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

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

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
while(rs.next())
{
String max = rs.getString("maxint"); //獲得最大的字段
String maxi = max.substring(2,max.length()); //截取子字符串
newmax = "CB" + String.valueOf(Integer.parseInt(maxi) + 1);
}
我估計(jì)是不是
String max = rs.getString("maxint"); //獲得最大的字段
這句話沒有獲得到值 導(dǎo)致了 null或者 長度<3
然后下面再 max.substring(2,max.length()); //截取子字符串
- 6 回答
- 0 關(guān)注
- 13332 瀏覽
添加回答
舉報(bào)