计算字符串生成器中的单词

时间:2013-05-16 01:25:19

标签: c# asp.net

我有一个字符串构建器,可存储许多单词......例如,我做了

StringBuilder builder = new StringBuilder();
builder.Append(reader.Value);

现在,builder包含字符串

" india is a great great country and it has many states and territories".. it contains many paragraphs.

我希望每个单词都应该是唯一的,并且它的单词数量。例如,

india: 1
great: 2
country: 1
and: 2

此外,此结果应保存在Excel文件中。但我没有得到结果。

我在谷歌搜索过,但我是通过linq或通过写单词本身来获取它。你能帮帮我吗?我是初学者。

3 个答案:

答案 0 :(得分:4)

您可以使用Linq来实现它。尝试这样的事情。

var result = from word in builder.Split(' ')
             group word by word into g
             select new { Word = g.Key, Count = g.Count() };

您也可以将此结果转换为此对象的

字典对象
Dictionary<string, int> output = result.ToDictionary(a => a.Word, a => a.Count);

因此,输出中的每个项目都包含Word作为键,而Count作为值。

答案 1 :(得分:1)

嗯,这是获取话语的一种方式:

IEnumerable<string> words = builder.ToString().Split(' ');

答案 2 :(得分:0)

使用String.Split()函数将字符串分解为单词。然后,您可以使用Dictionary<string, int>来跟踪唯一字词及其计数。

尽管如此,你并不需要StringBuilder - 当你将字符串连接在一起时,StringBuilder很有用。

你只需要在这里添加一个输入字符串,你就不会添加它。

完成处理输入字符串中的所有单词后,您可以编写代码以将结果导出到Excel。最简单的方法是创建一个以逗号分隔的文本文件 - 搜索该短语并查看使用StreamWriter来保存输出。 Excel具有CSV文件的内置转换器。