在java中比较字符串中的字符?

在java中比较字符串中的字符?,java,string,collections,Java,String,Collections,我的任务是删除连续重复的字符,并替换字符串中重复字符的计数。当我比较这两个字符时,我得到了IndexOutOfBoundException。我不知道如何纠正它。我是初学者。我在这里附上了我的代码。谁能验证我的代码并帮助我 节目: import java.util.*; public class RemoveDupchar{ public static void main(String []args){ String string = "aabbccdefatafaz

我的任务是删除连续重复的字符,并替换字符串中重复字符的计数。当我比较这两个字符时,我得到了IndexOutOfBoundException。我不知道如何纠正它。我是初学者。我在这里附上了我的代码。谁能验证我的代码并帮助我

节目:

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);
     }
}
import java.util.*;
公共类RemoveDupchar{
公共静态void main(字符串[]args){
String String=“aabbccdefatazaacddseff”;
char[]chars=string.toCharArray();
ArrayList al=新的ArrayList();
for(char c:chars)
{
al.添加(c);
}
int i=0;
int j=0,k=1;
char[]r=新字符[100];

对于Java中的(i=0;i,集合是基于0的,因此,大小为5的集合的位置从0到4。在本例中,您有以下行:
al.get(i+1)
。这将尝试访问
n+1
第个位置,其中
n
是集合的大小


替换(i=0;iExact stacktrace)的
,我们需要更多详细信息。非常感谢。我得到了输出。我想在字符数组中添加计数值。但我无法将其添加到字符数组中。问题在于行r[j++]=char(k)。我如何向字符数组中添加整数值。@user3661367:字符数组中的
int
将被视为字符。您可以做的是使用字符串数组,并将字符的字符串值和数字添加到该数组中。K..我现在再试一次。