求一个C#程序
求一个C#程序,可以统计一篇文章中各单词出现的词数(不包括标点符号),并且把出现次数前十的单词输出。多谢了!!!...
求一个C#程序,可以统计一篇文章中各单词出现的词数(不包括标点符号),并且把出现次数前十的单词输出。
多谢了!!! 展开
多谢了!!! 展开
展开全部
也是老生常谈的问题了。用正则可以轻易解决,使用\b\w+\b来捕获所有的单词,结果丢字典。
public class CountResult
{
public Dictionary<string, int> resultDic = new Dictionary<string, int>();
public CountResult(string sourceTxt)
{
Regex reg = new Regex("\\b\\w+\\b");
Match match = reg.Match(sourceTxt);
while (match.Success)
{
if (resultDic.ContainsKey(match.Value))
resultDic[match.Value]++;
else
resultDic.Add(match.Value, 1);
match = match.NextMatch();
}
}
}
要前10的输出也简单,一行搞定:
List<string> r = resultDic.OrderByDescending<KeyValuePair<string, int>, int>(pair => pair.Value).Take(10).Select(pair => pair.Key).ToList();
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先 一篇文章(什么类型?),单词(中文?英文?所有?)
追问
英文的
追答
恩恩 楼下有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是华为的面试题~~~~~~,上周刚面试的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询