int cc=1; char v; while(cc>0){ //先獲取一個(gè)字符的索引 v=str.charAt(0); cc=str.length(); str=str.replaceAll(String.valueOf(v), ""); cc=cc-str.length(); System.out.println(v+":"+cc+"次"); }運(yùn)行功能正常,但為什么會(huì)報(bào)StringIndexOutOfBoundsException?
4 回答
已采納

blovetu
TA貢獻(xiàn)319條經(jīng)驗(yàn) 獲得超234個(gè)贊
下標(biāo)越界,如果運(yùn)行正常的話(huà),那應(yīng)該就是最后一句報(bào)錯(cuò)了

斷橋1
TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超2個(gè)贊
while(cc>0){
//先獲取一個(gè)字符的索引
會(huì)不會(huì)是當(dāng)循環(huán)執(zhí)行到字符串的長(zhǎng)度為零時(shí),由于cc此時(shí)是大于零的數(shù),所以在繼續(xù)循環(huán)的時(shí)候,因?yàn)閟tr里已經(jīng)沒(méi)有字符串了,所以當(dāng)返回索引為零的字符時(shí)會(huì)越界?
添加回答
舉報(bào)
0/150
提交
取消