首页 > 解决方案 > 无空格字符串中最常见的词

问题描述

我有一个很长的文本字符串,其中有很多由 camelCase 分隔的单词,如下所示:

AedeagalAedilityAedoeagiAefaldnessAegeriidaeAeginaAeipathyAeneolithicAeolididaeAeonialAerialityAerinessAerobia

我需要找到最常用的单词和它被使用的次数,由于缺少空格和 C# 新手,我不知道如何做到这一点。
我已经尝试了很多方法,但似乎都没有奏效,如果您有任何建议,我将不胜感激。
我有一个 github 存储库,其中包含正在下载的文件,并且已经在这里完成了一些测试:https
://github.com/Imstupidpleasehelp/C-code-test 谢谢。

标签: c#.net-core

解决方案


您可以尝试借助正则表达式和 Linq 查询字符串:

 string source = ...

 var result = Regex
   .Matches(source, "[A-Z][a-z]*")
   .Cast<Match>()
   .Select(match => match.Value)
   .GroupBy(word => word)
   .Select(group => (word : group.Key, count : group.Count()))
   .OrderByDescending(pair => pair.count)
   .First();

 Console.Write($"{result.word} appears {result.count} time");   

推荐阅读