我在做一個問題,如果相鄰的字符具有相同的值,我必須從字符串中刪除字符。這是我的代碼:意外的StringIndexOutOfBoundsException拋出?
import java.util.Scanner;
public class SuperReducedStringRe {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.next();
StringBuilder s = new StringBuilder(str);
char[] ch = str.toCharArray();
for(int i = 0;i < str.length()-1; i++) {
if(s.charAt(i) == s.charAt(i+1)) {
s.delete(i,i+2);
i=-1;
}
}
System.out.print(s);
}
}
我檢查並重新檢查無效的指標,但無法找到one.Can有人能幫我找出什麼時候和怎麼我出去允許的指數?
提示:如果您刪除從'StringBuilder'一些字符,它長的不一樣,因爲它是。假設你以「xxxxxxxxxxx」開始......你仍然會循環10次,但最終你的StringBuilder將不夠長。您應該能夠通過在調試器中小心翼翼地看到這一點。 –
堆棧跟蹤在哪裏?使用調試器Luke ... –