当前位置: 代码迷 >> Java相关 >> 如何数string里的字母数量多少
  详细解决方案

如何数string里的字母数量多少

热度:99   发布时间:2009-10-27 10:13:25.0
如何数string里的字母数量多少
如何数string里的字母数量

比如说一个string是“similar", 我要找出出现次数最多的字母,也就是i,请问这样的程序怎么写

这是我自己写的, 但是每次输出都是最后一个字母,怎么回事呢? 大家帮我改改
    public char mostFrequent()
    {
        int position, count=0, i=0, j=0,k=0;
        int maxCount=0;
        char frequent='a';
        char[] nameArray;
        line=line.toLowerCase();
        nameArray=line.toCharArray();
        
        for (; k<line.length(); k++)
        {
            position=line.indexOf(nameArray[i]);
            count++;
            while (position !=-1)
            {
                position=line.indexOf(nameArray[i],position+1);
                count++;
                if (count>maxCount)
                {
                    maxCount=count;
                    j=i;
                    frequent=nameArray[j];
                }
            }
            count=0;
            i++;
        }
        return frequent;
    }


[ 本帖最后由 suckdog 于 2009-10-27 10:19 编辑 ]
搜索更多相关的解决方案: 数量  字母  string  

----------------解决方案--------------------------------------------------------
刚自己做了个,仅供参考
package test;

public class MyCount {

    public static void main(String[] args) {
        int maxCount=0;
        char maxChar='a';
        String str="similar";
        char ch11;
        char ch12;
        int l;
        int p;
    for(int i=0;i<str.length();i++){
            int count=0;
            String str1=str.toLowerCase();
            char[] cha=str1.toCharArray();
            int t=0;l=0;p=1;
            for(;t<str.length();t++){
                ch11=cha[i];
                ch12=str1.substring(l, p).toLowerCase().charAt(0);
                if(ch11==ch12){
                    count++;
        }
            l++;p++;

            }
            if(count>maxCount){
                maxCount=count;
                maxChar=cha[i];
            }

            
        }
        System.out.println("出现最多的字母是--->"+maxChar+" "+maxCount+"次");
         
    }

}

----------------解决方案--------------------------------------------------------
我写的和你差不多,为什么会瘫痪
   public int mostFrequent()
    {
        int count=0;
        int maxCount=0;
        char frequent='a';
        char[] nameArray;
        char one, two;
        int l=0, p=1;
        String str1=line.toLowerCase();
        nameArray=str1.toCharArray();
         
        for(int i=0; i<line.length(); i++)
        {      
         for(int t=0; t<line.length(); t++)
            {  
            one=nameArray[i];  
            two=str1.substring(l, p).toLowerCase().charAt(0);  
            if(one==two)
               count++;   
             l++;
                p++;  

         }  
         if(count>maxCount)
            {  
            maxCount=count;  
            frequent=nameArray[i];  
         }  
        }
        return maxCount;
    }

----------------解决方案--------------------------------------------------------
你的问题出在count--->一直都在加
    for(int i=0; i<line.length(); i++)  
        {  
            int count=0;   //放这里。外循环第(2、3、4、5....)次的时候重新统计
----------------解决方案--------------------------------------------------------
  相关解决方案