c#编一个统计字符串出现次数的程序

文件1.ini文件中,内容如下:aabbccaaaabb//统计aabbcc各自的次数,前提是1.ini文件中的字符串是不确定的,以上只是举了个例子,基本上就是读1.in... 文件1.ini文件中,内容如下:
aa
bb
cc
aa
aa
bb
//统计aa bb cc各自的次数,前提是1.ini文件中的字符串是不确定的,以上只是举了个例子,基本上就是读1.ini文件然后统计会出现在1.ini文件中各个字符串出现的次数。求可执行的程序,先谢谢啦
展开
 我来答
llyn23
2014-02-21 · TA获得超过5142个赞
知道大有可为答主
回答量:1831
采纳率:50%
帮助的人:1803万
展开全部

每一行作为一个字符串麽?如果是那很简单啦,代码如下:

static void Main(string[] args)        
{            
    string fullname = @"D:\demo.ini";            
    if (!System.IO.File.Exists(fullname))            
    {               
        Console.WriteLine("未找到文件:{0}", fullname);                
        return;            
    }            
    Dictionary<string, int> dict = new Dictionary<string, int>();            
    string[] lines = System.IO.File.ReadAllLines(fullname, Encoding.Default);            
    foreach (string line in lines)            
    {                
        if (!dict.ContainsKey(line))                
        {                    
            dict.Add(line, 0);                
        }               
        else                
        {                    
            dict[line] += 1;                
        }            
    }            
    foreach (string key in dict.Keys)            
    {                
        Console.WriteLine("{0},出现{1}次", key, dict[key]);            
    }        
}

 

更多追问追答
追问
那怎样把最后统计的结果按照aa次数为3次,bb为2次、、这种输出啊??
追答
已经是按那样输出了
斯内科Snake
推荐于2016-02-11 · TA获得超过523个赞
知道小有建树答主
回答量:707
采纳率:50%
帮助的人:224万
展开全部
public static void Main(string[] args)
        {
            FileStream fs = new FileStream("1.ini", FileMode.Open, FileAccess.Read);
            StreamReader sr = new StreamReader(fs);
            List<string> list = new List<string>();
            string s = sr.ReadLine();
            while (s != null) 
            {
                if (s.Trim().Length > 0) 
                {
                    list.Add(s);
                }
                s = sr.ReadLine();
            }
            string[] sArr ={ "aa", "bb", "cc" };
            for (int i = 0; i < sArr.Length; i++)
            {
                int count = GetStrCount(list, sArr[i]);
                Console.WriteLine("字符串[{0}]在集合中出现[{1}]次", sArr[i], count);
            }
            Console.ReadLine();            
        }
        /// <summary>
        /// 获得字符串在集合中出现的次数
        /// </summary>
        /// <param name="list"></param>
        /// <param name="str"></param>
        /// <returns></returns>
        static int GetStrCount(List<string> list, string str) 
        {
            int count = 0;
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i] == str) 
                {
                    count++;
                }
            }
            return count;
        }
追问
现在是1.ini中的字符串是不确定的,不一定是aa,bb,cc,要怎样写呢??
追答
你这样 将List list删除重复的 搞成某个唯一 生成一个List listNew
代码如下:
List listNew = new List();
for (int i = 0; i < list.Count; i++)
{
if (listNew.Contains(list[i]) == false)
{
listNew.Add(list[i]);
}
}
string[] sArr = listNew.ToArray();
代替 这一行string[] sArr ={ "aa", "bb", "cc" };
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式