c# - 无空格字符串中最常见的词
问题描述
我有一个很长的文本字符串,其中有很多由 camelCase 分隔的单词,如下所示:
AedeagalAedilityAedoeagiAefaldnessAegeriidaeAeginaAeipathyAeneolithicAeolididaeAeonialAerialityAerinessAerobia
我需要找到最常用的单词和它被使用的次数,由于缺少空格和 C# 新手,我不知道如何做到这一点。
我已经尝试了很多方法,但似乎都没有奏效,如果您有任何建议,我将不胜感激。
我有一个 github 存储库,其中包含正在下载的文件,并且已经在这里完成了一些测试:https
://github.com/Imstupidpleasehelp/C-code-test
谢谢。
解决方案
您可以尝试借助正则表达式和 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");
推荐阅读
- python - 在 Pandas 中用 groupby mean 替换基于多个条件的值
- aframe - 在 aframe 中添加指向 GLTF 对象的链接
- javascript - 如何在 Angular 8 中将 js 文件添加到 component.html?
- delphi - 如何使用 TShellTreeView
- ruby-on-rails - Ruby 博客教程 - ActionController::InvalidAuthenticityToken
- liquibase - liquibase diff...没有发现任何区别?
- java - 将数据放入集合中?
- reactjs - Firebase 踢出当前用户 - 使用 Web SDK “管理用户”
- c# - 如何在两个表中插入相同的值
- javascript - SystemJS,将 importmap 与模块一起使用,需要做出反应