做一个C#程序;列出文本中的每个单词和每个单词出现的次数。以及每个单词在句子中出现的次数。

例如文本内容:aaabbbaaacccddd,eee,edc.输出aaa=2;bbb=1;ccc=1;ddd=1;eee=1;edc=1;希望有大虾帮忙。其他的我已经做出... 例如 文本内容:aaa bbb aaa ccc ddd,eee,edc.
输出
aaa=2;
bbb=1;
ccc=1;
ddd=1;
eee=1;
edc=1;
希望有大虾帮忙。其他的我已经做出来了,就这步的算法想不出来
展开
 我来答
百度网友16ad9e1
推荐于2016-12-02 · TA获得超过774个赞
知道小有建树答主
回答量:477
采纳率:0%
帮助的人:504万
展开全部

正则分隔  然后计算匹配次数:

static void Main(string[] args)
        {
            var s = "aaa bbb aaa ccc ddd,eee,edc";
            foreach (string m in (new Regex(@"\b\W+\b")).Split(s).ToArray().Distinct().OrderBy(i=>i))
            {
                Console.WriteLine("{0}: {1}", m, (new Regex(@"\b" + m + @"\b")).Matches(s).Count);
            }
            Console.Read();
        }

 

追问

我的文本放在richTextBox1.Text里,输出·在richTextBox2.Text里,

但是输出只有一个元素,你看看是什么地方错了

追答
richTextBox2.Text+=.....
百度网友66a8d48e5
推荐于2018-05-07 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3870万
展开全部
建立一个Dictrory<string,int>,存放单词与单词的次数。

然后每次进行插入,“单词",1,若插入失败,则证明已经存在,将进行值加1即可。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzh3452
2013-05-31 · TA获得超过1044个赞
知道小有建树答主
回答量:1168
采纳率:100%
帮助的人:853万
展开全部
Hashtable hashtable = new Hashtable<string,int>();
char[] charSeparators = new char[] {" ", ",", ".", "!", "?"};此处枚举所有单词分隔符
//这里是将句子分割成单词,并去掉空白元素。
string[] words = "aaa bbb aaa ccc ddd,eee,edc.".Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);

for (int i = 0; i < words.Length; i++)
{
//hashtable很强大,如果已经出现过这个单词,自然是可以取出来的,如果没有,他会自动做一个新元素出来。第一次加入hashtable的单词,Convert方法的参数会是null,但他可以转成0,不必担心。
hashtable[words[i]] = Convert.ToInt32(hashtable[words[i]]) + 1;
}
循环后将hashtable里的内容输出出来就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式