我在做一个问题,如果相邻的字符具有相同的值,我必须从字符串中删除字符。这是我的代码:意外的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 ... –