| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 702 人关注过本帖
标题:如何数string里的字母数量多少
只看楼主 加入收藏
suckdog
Rank: 1
等 级:新手上路
帖 子:130
专家分:0
注 册:2007-9-19
结帖率:41.67%
收藏
 问题点数:0 回复次数:3 
如何数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 
2009-10-27 10:13
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
刚自己做了个,仅供参考
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+"次");
         
    }
 
}

C#超级群 74862681,欢迎大家的到来!
2009-10-27 14:23
suckdog
Rank: 1
等 级:新手上路
帖 子:130
专家分:0
注 册:2007-9-19
收藏
得分:0 
我写的和你差不多,为什么会瘫痪
   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;
    }
2009-10-27 15:19
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
你的问题出在count--->一直都在加
    for(int i=0; i<line.length(); i++)  
        {  
            int count=0;   //放这里。外循环第(2、3、4、5....)次的时候重新统计

C#超级群 74862681,欢迎大家的到来!
2009-10-27 16:37
快速回复:如何数string里的字母数量多少
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019465 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved