Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从字符串生成器计算单词数_C#_Asp.net - Fatal编程技术网

C# 从字符串生成器计算单词数

C# 从字符串生成器计算单词数,c#,asp.net,C#,Asp.net,我有一个字符串生成器,可以存储很多单词。例如,我有 StringBuilder builder = new StringBuilder(); builder.Append(reader.Value); 现在,生成器包含字符串作为 " india is a great great country and it has many states and territories".. it contains many paragraphs. 我希望每个单词都应该是唯一的,并且它的字数应该是唯一的。例

我有一个字符串生成器,可以存储很多单词。例如,我有

StringBuilder builder = new StringBuilder();
builder.Append(reader.Value);
现在,生成器包含字符串作为

" 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或是通过文字本身获得的。你能帮帮我吗。我是一个初学者。

研究如何使用该函数将字符串分解为单词。然后,您可以使用记录来跟踪唯一单词及其计数

不过,您并不需要使用
StringBuilder
,当您将字符串大量拼接在一起时,
StringBuilder
非常有用。这里只有一个输入字符串,您不会添加到其中,而是将其拆分


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

好的,这是一种获取文字的方法:

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

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

var result = from word in builder.Split(' ')
             group word by word into g
             select new { Word = g.Key, Count = g.Count() };
您还可以像这样将此结果转换为Dictionary对象

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

因此,在这里,输出中的每个项目都将包含
Word
作为键,它将
Count
作为值。

到目前为止您尝试了什么?你有什么代码可以帮助你吗?没有,我没有任何想法,我从来没有做过,这项工作也是。我在谷歌上搜索了一下,但没能得到结果。我想无论是谁对这个问题投了更高的票,他都会把这个问题解读为:“如何在不创建任何新字符串的情况下计算
StringBuilder
中的单词数(每个单词可能有一个字符串除外)?”——这将是一个有趣的练习。user2387900-您是否有充分的理由避免使用简单的
builder.ToString().Split()…
code?这是一个非常有用的链接。我认为我们应该考虑句子有点标点的情况。例如“人们编写代码是因为他们喜欢它。”在这种情况下,这种方法会将“it.”和“it”视为两个词。正如我之前评论的那样,我认为在处理字符串之前,我们应该删除标点符号。添加代码
builder=新字符串(builder.Where(x=>!char.ispuncuation(x)).ToArray())在处理字符串之前。我没有足够的代表分数,但是有人可以用4票编辑答案。据我所知,stringbuilder没有拆分方法。所以它应该成为builder.toString.Split(“”)