簡體   English   中英

如何從字符串中獲取重復字符以及重復多少次

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM