gpt4 book ai didi

java - 统计一个字符在字符串中连续出现的次数

转载 作者:搜寻专家 更新时间:2023-10-31 20:24:53 27 4
gpt4 key购买 nike

我是 Java 新手。我正在尝试打印字符串中存在的字符及其计数。仅当旁边出现相同字符时计数才会增加。

例如:

输入/输出:SSGs

O/P : S1s2g1s1

计算每个字符的出现次数会给出完整计数,而不管字符是否彼此相邻。篡改 i 和 j 循环会导致 OutOfBounds 错误。

      //ch[] is the String converted to a character array.
//count[] is an array to store count of the characters

//Checks if present char and next char are same and increments count
for(int i=0;i<ch.length;i++)
{
count[i]=0;
for(int j=0;j<ch.length;j++)
{
if(ch[i]==ch[j])
{
count[i]++;
}
}
}

//Prints Distinct char
for(int i=0;i<ch.length;i++)
{
int j;
for(j=0;j<i;j++)
{
if(ch[i]==ch[j])
{
break;
}
}

if(i==j)
{
System.out.print(ch[i]+" "+count[i]);
}
}

输入是 > HelloWorld

预期的输出应该是 > H1 e1 l2 o1 W1 o1 r1 l1 d1

最佳答案

我刚刚对您的代码进行了一些更正,下面是它的样子:

public static void main(String[] args) {
String s = "Sssgs";
char[] ch = s.toCharArray();
int[] count = new int[20];

for(int i=0;i<ch.length;i++)
{
count[i]=0;
for(int j=i;j<ch.length;j++)
{
if(ch[i]==ch[j])
{
count[i]++;
} else {
break;
}
}
}

//Prints Distinct char
for(int i=0;i<ch.length;i += count[i])
{
System.out.print(ch[i] + "" +count[i]);
}
}

当我只读取字符及其出现次数,然后在迭代中跳转该数字时,大多数更改发生在 Prints Distincts 中。它让我停在下一个不同的字符上

“Sssgs”的输出是“S1s2g1s1”,“HelloWorld”的输出是“H1e1l2o1W1o1r1l1d1”

关于java - 统计一个字符在字符串中连续出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55473568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com