求c#程序:一个文件中,把每一个单词都分割出来,并统计单词的总数和每个单词出现的次数,并将这些单词排序
程序基于c#windows应用程序单词拆分——Split();统计排序——SortedList;显示——枚举器、列表框...
程序基于 c# windows 应用程序
单词拆分——Split();
统计排序——SortedList;
显示——枚举器、列表框 展开
单词拆分——Split();
统计排序——SortedList;
显示——枚举器、列表框 展开
展开全部
1L写的不对,他要求的是单词,不是字符
//调用
Stats("hello,nice to meet you,hello,i say good bye to you");
//函数创建
protected void Stats(String article)
{
MatchCollection mc = Regex.Matches(article, @"\b\w+\b");
Response.Write("总数:"+mc.Count+"<br/>");
Dictionary<String, int> dct = new Dictionary<String, int>(mc.Count);
foreach(Match mt in mc)
{
if (dct.ContainsKey(mt.Value))
{
dct[mt.Value]++;
}
else
{
dct.Add(mt.Value,1);
}
}
dct = dct.OrderBy(i => i.Key).ToDictionary(c => c.Key, c => c.Value);
//输出结果
foreach (KeyValuePair<String,int> de in dct)
{
Response.Write(de.Key+":"+de.Value+"<br/>");
//换成Writeline输出,如果是WinForm
}
}
----------结果------------
总数:12
bye:1
good:1
hello:2
i:1
meet:1
nice:1
say:1
to:2
you:2
-------------------------------
很清晰了吧,难道读文件跟显示都不会?
-------------------------------
作业的话自己做吧,我只负责解决问题
//调用
Stats("hello,nice to meet you,hello,i say good bye to you");
//函数创建
protected void Stats(String article)
{
MatchCollection mc = Regex.Matches(article, @"\b\w+\b");
Response.Write("总数:"+mc.Count+"<br/>");
Dictionary<String, int> dct = new Dictionary<String, int>(mc.Count);
foreach(Match mt in mc)
{
if (dct.ContainsKey(mt.Value))
{
dct[mt.Value]++;
}
else
{
dct.Add(mt.Value,1);
}
}
dct = dct.OrderBy(i => i.Key).ToDictionary(c => c.Key, c => c.Value);
//输出结果
foreach (KeyValuePair<String,int> de in dct)
{
Response.Write(de.Key+":"+de.Value+"<br/>");
//换成Writeline输出,如果是WinForm
}
}
----------结果------------
总数:12
bye:1
good:1
hello:2
i:1
meet:1
nice:1
say:1
to:2
you:2
-------------------------------
很清晰了吧,难道读文件跟显示都不会?
-------------------------------
作业的话自己做吧,我只负责解决问题
展开全部
忘了,总数没算哈,加上:
int sum = 0;//单词总数
private Dictionary<char, int> Statistic(string article)
{
sum = article.Length;
Dictionary<char, int> dic = new Dictionary<char, int>();//记录不同字符出现的个数
foreach (char a in article)
{
if (!dic.ContainsKey(a))
dic.Add(a, 1);
else
dic[a] = dic[a] + 1;
}
return dic;
}
排序可以有很多方法的,下面用冒泡法:
Public Dictionary<char, int> Maopao(Dictionary<char, int> dic_m)
{
For(int i=0;i<dic_m.Keys.Count;i++)
{
For(int j=0;j<dic_m.Keys.Count-1-i;j++)
{
if(dic_m[j]<dic_m[j+1])
{
Int temp=dic_m[j];
dic_m[j]=dic_m[j+1];
dic_m[j+1]=temp;
}
}
}
return dic_m;
}
int sum = 0;//单词总数
private Dictionary<char, int> Statistic(string article)
{
sum = article.Length;
Dictionary<char, int> dic = new Dictionary<char, int>();//记录不同字符出现的个数
foreach (char a in article)
{
if (!dic.ContainsKey(a))
dic.Add(a, 1);
else
dic[a] = dic[a] + 1;
}
return dic;
}
排序可以有很多方法的,下面用冒泡法:
Public Dictionary<char, int> Maopao(Dictionary<char, int> dic_m)
{
For(int i=0;i<dic_m.Keys.Count;i++)
{
For(int j=0;j<dic_m.Keys.Count-1-i;j++)
{
if(dic_m[j]<dic_m[j+1])
{
Int temp=dic_m[j];
dic_m[j]=dic_m[j+1];
dic_m[j+1]=temp;
}
}
}
return dic_m;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Big_fox 正解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呃,顶2楼的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询