Meine Aufgabe besteht darin, die sich fortlaufend wiederholenden Zeichen zu entfernen und die Anzahl der wiederholten Zeichen in der Zeichenfolge zu ersetzen. Als ich die zwei Zeichen verglichen habe, habe ich die IndexOutOfBoundException bekommen. Ich weiß nicht, wie ich es korrigieren soll. Bin Anfänger. Ich habe meinen Code hier angehängt. Könnte jemand meinen Code verifizieren und mir helfen?Zeichen in Zeichenfolge in Java vergleichen?
Programm:
import java.util.*;
public class RemoveDupchar{
public static void main(String []args){
String string = "aabbccdefatafazaacddsegf";
char[] chars = string.toCharArray();
ArrayList<Character> al=new ArrayList<Character>();
for(char c : chars)
{
al.add(c);
}
int i=0;
int j=0,k=1;
char[] r = new char[100];
for(i=0;i<al.size();i++)
{
char ch;
ch=al.get(i);
if(ch!=al.get(i+1)) **//I got Runtime error here**
{
r[j++]=ch;
}
else
{
r[j++]=ch;
while(al.get(i)==ch)
{
++k;
++i;
}
r[j++]=(char)k;
}
}
for(char c: r)
{
System.out.print(c);
}
}
}
Genaue Stacktrace bitte, wir brauchen mehr Details. – Li357