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