![](/img/trans.png)
[英]find how many numberof times a character from a String is repeated in java
[英]how to get Repeated character from String and how many times it repeated
您好,我是編程新手,對不起我的英語。 例如,問題是:我們有字符串“ cabbaa”,我應該得到1c1a2b2a
這意味着:1倍“ c”,1倍“ a”,2倍“ b”,2倍“ a”
我可以寫得到1c3a2b
代碼:
public class test {
static int i,j,k,c=0,w;
static char m;
public static void main(String[] args) {
frequencycount("cabbaa");
}
static void frequencycount(String s)
{
char[] z=new char[s.length()];
for(w=0;w<s.length();w++)
z[w]=s.charAt(w);
for(i=0;i<w;i++)
{
char ch=z[i];
for(j=i+1;j<w;j++)
{
if(z[j]==ch)
{
for(k=j;k<(w-1);k++)
z[k]=z[k+1];
w--;
j=i;
}
}
}
int[] t=new int[w];
for(i=0;i<w;i++)
{
for(j=0,c=0;j<s.length();j++)
{
if(z[i]==s.charAt(j))
c++;
}
t[i]=c ;
System.out.print(c+""+z[i]);
}
}
}
在這段代碼中,我想我比較了字符串中的所有字符,得到了1c3a2b
,但是我應該得到了1c1a2b2a
。
任何幫助表示贊賞。
這應該做的工作:
public class test {
public static void main(String[] args) {
frequencycount("cabbaa");
}
static void frequencycount(String s) {
StringBuilder output = new StringBuilder();
Character previousCharacter = null;
int counter = -1;
for (Character c : s.toCharArray()) {
if (c.equals(previousCharacter)) {
counter++;
} else {
if (previousCharacter != null) {
output.append(counter);
output.append(previousCharacter);
}
counter = 1;
previousCharacter = c;
}
}
if (previousCharacter != null) {
output.append(counter);
output.append(previousCharacter);
}
System.out.println("Res: " + output);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.