gpt4 book ai didi

c# - 如何计算字符串中每个单词的出现次数?

转载 作者:行者123 更新时间:2023-12-03 21:41:32 28 4
gpt4 key购买 nike

我使用以下代码从字符串输入中提取单词,我怎样才能得到每个单词的出现呢?

var words = Regex.Split(input, @"\W+")
.AsEnumerable()
.GroupBy(w => w)
.Where(g => g.Count() > 10)
.Select(g => g.Key);

最佳答案

您可以使用 string.Split 而不是 Regex.Split 并获取每个单词的计数,例如:

string str = "Some string with Some string repeated";
var result = str.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries)
.GroupBy(r => r)
.Select(grp => new
{
Word = grp.Key,
Count = grp.Count()
});

如果你想过滤掉至少重复 10 次的单词,那么你可以在 Select 之前添加一个条件,例如 Where(grp=> grp.Count >= 10)

对于输出:

foreach (var item in result)
{
Console.WriteLine("Word: {0}, Count:{1}", item.Word, item.Count);
}

输出:

Word: Some, Count:2
Word: string, Count:2
Word: with, Count:1
Word: repeated, Count:1

对于不区分大小写的分组,您可以将当前的 GroupBy 替换为:

.GroupBy(r => r, StringComparer.InvariantCultureIgnoreCase)

所以你的查询是:

var result = str.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries)
.GroupBy(r => r, StringComparer.InvariantCultureIgnoreCase)
.Where(grp => grp.Count() >= 10)
.Select(grp => new
{
Word = grp.Key,
Count = grp.Count()
});

关于c# - 如何计算字符串中每个单词的出现次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23227721/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com