使用 C# 中的字典计算字符串中每个重复单词的出现次数[关闭]

2024-03-28

编辑:我详细阐述了我的问题更多..解决方案在这里用于修复重复的单词..有人问我每个重复的单词

我是新手......可能不是一个好问题。 ......

这是字符串

string str = "this this is is a a string"

在面试中,我被要求将每个重复关键字的计数存储在通用字典中,然后按顺序显示它们

例如“is”关键字出现的次数为2

类似链接
: C# 查找字符串中出现次数最多的字符? https://stackoverflow.com/questions/5069687/find-the-most-occurrence-of-a-character-in-string-c---这是关于寻找性格

查找文本中单词列表中单词的出现次数 https://stackoverflow.com/questions/14087336/finding-occurrences-of-words-in-text-which-are-in-a-list-words---这是在Python中

删除字符串中出现的重复单词 https://stackoverflow.com/questions/16843991/remove-occurrences-of-duplicate-words-in-a-string---这是 JavaScript 中的

如何使用 string.match 方法查找字符串中同一单词的多次出现? https://stackoverflow.com/questions/2901923/how-to-use-the-string-match-method-to-find-multiple-occurrences-of-the-same-word---不相关

..请建议


使用 LINQ 非常简单:

string str = "this is is a string";
string[] words = str.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);

(您也可以使用Regex.Split(str, @"\W+")就像@markieo 在他的回答中所做的那样。不同之处在于,它还会检测被引号和其他标点符号包围的单词。感谢@JonB 在评论中指出了这一点。)

Dictionary<string, int> statistics = words
    .GroupBy(word => word)
    .ToDictionary(
        kvp => kvp.Key, // the word itself is the key
        kvp => kvp.Count()); // number of occurences is the value
int isCount = statistics["is"]; // returns 2

EDIT:

我正在发布满足您的增强要求的代码。但对于未来,只需发布​​另一个问题,而不是修改已回答的问题!

// retrieving all duplicate words
string[] duplicates = statistics
    .Where(kvp => kvp.Value > 1)
    .Select(kvp => kvp.Key)
    .ToArray();

// counting all duplicates and formatting it into a list in the desired output format
string output = String.Join(
    "\n", 
    statistics
        .Where(kvp => kvp.Value > 1)
        .Select(kvp => 
            String.Format(
                "count(\"{0}\") = {1}", 
                kvp.Key, 
                kvp.Value))
        .ToArray() // this line is only needed on older versions of .NET framework
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 C# 中的字典计算字符串中每个重复单词的出现次数[关闭] 的相关文章

  • Console.ReadLine() 末尾没有换行符?

    问题很简单 当我使用 Console ReadLine 控制台上打印的下一个内容将在下一行 有什么办法可以继续打印该行吗 提前致谢 请检查 控制台 Read 这不会导致新行或换行
  • 当父类也实现 IDisposable 时,在子类上实现 IDisposable

    我有一个父类和子类都需要实现IDisposable 应该在哪里virtual and base Dispose 通话发挥作用 当我刚刚覆盖Dispose bool disposing 打电话 说我实现了感觉真的很奇怪IDisposable没
  • 将阻塞调用包装为异步,以实现更好的线程重用和响应式 UI

    我有一个类负责通过调用遗留类来检索产品可用性 该遗留类本身通过进行 BLOCKING 网络调用在内部收集产品数据 请注意 我无法修改旧版 API 的代码 由于所有产品都是相互独立的 因此我希望并行收集信息 而不会创建任何不必要的线程 也不会
  • make: *** 没有规则可以创建“all”所需的目标“gcc”。停止

    我正在通过一个eg pgm 来创建一个make 文件 http mrbook org tutorials make http mrbook org tutorials make 我的文件夹eg make creation包含以下文件 des
  • 将 Azure Blob 与 Azure 网站连接

    我正在尝试将 Azure 网站连接到 Azure blob 我打算在容器中托管一些文件 然后从我的网站获取它们 我从本教程开始 http azure microsoft com en us documentation articles we
  • 为什么shared_ptr删除器必须是可复制构造的?

    在 C 11 中std shared ptr有四个构造函数 可以传递删除器对象d类型的D 这些构造函数的签名如下 template
  • C# 中的嵌套正则表达式替换

    我不太擅长正则表达式 但我了解基础知识 我试图弄清楚如何根据匹配中的某个值进行条件替换 例如 假设我有一些嵌套的字符串结构 如下所示 id value id and value are space delimited id will nev
  • 对“组件”类型的引用声明它是在“系统”中定义的

    尝试在 UWP 应用程序中获取一些 WMI 对象 在 net 4 6 上运行 VS2015 我收到 ForEach 和方法调用错误 指出 引用类型 组件 声明它是在 系统 中定义的 错误为 CS7069 using System using
  • C++变量声明和初始化规则

    考虑以下声明和初始化类型变量的方法C C c1 C c2 c2 C C c3 C C c4 C 所有这些是否完全等同 或者其中一些可以根据确切的定义而有所不同C 假设它有公共默认值和复制构造函数 这些意味着 C c1 default con
  • 如何强制操作系统收回内存? (C++)

    在我的 C 代码中 我分配了大量内存来创建树 然后在每个节点中使用 删除 来释放内存 删除所有内容后 我检查操作系统使用的内存量 发现内存未释放 这是预期的 因为该进程不会立即将内存返回给操作系统 因为它仍然可能会再次使用它 问题是 我在删
  • C# 从视频文件的一部分中提取帧

    使用 AForge ffmpeg 包装器 您可以使用 VideoFileReader 类从视频中提取帧并将其保存为位图 请参阅以下示例 提取 avi 文件的帧 https stackoverflow com questions 178256
  • 如何在 Mac 上的 Sublime Text 2 上运行 C++?

    我尝试在 Mac 上的 Sublime Text 2 上用 C 运行 hello world I typed include iostream int main cout lt lt Hello WOrld return 0 但这给了我一个
  • 如何在 .net 表单应用程序的消息框中创建自定义按钮?

    我正在尝试在表单应用程序上使用 NET Compact Framework 3 5 实现自定义消息框 确定 取消 我如何实施它 如果您正在寻找带有 确定 和 取消 按钮的消息框 您可以使用 MessageBox Show this Mess
  • 将谓词作为参数传递给Where 子句时,EF SQL 发生了变化

    EF 正在为下面列出的两个相似语句生成不同的 SQL var test dbcontext Persons GetAll Where c gt c PersonID 2 Select c gt c PersonName FirstOrDef
  • 连接到 Wikipedia API 的 WebRequest

    这可能是一个可悲的简单问题 但我似乎无法格式化帖子网络请求 响应以从维基百科API http en wikipedia org wiki Wikipedia API 如果有人可以帮助我查看我的问题 我已在下面发布了我的代码 string p
  • #region 描述编译到.net 中的.exe 中?

    region endregion 指令 描述 是否编译到 NET 中的 EXE 中 我知道注释不是 但我经常在一个区域内对代码组进行分块并给出有用的描述 我想确保这些描述在我编译的代码中不可见 我不是在寻找混淆信息 不过 谢谢 不 他们不是
  • 为数据提供有效类型是否会产生副作用?

    假设我有一大块动态分配的数据 void allocate size t n void foo malloc n return foo 我希望使用指向的数据foo作为一种特殊类型 type t 但我想稍后再这样做 而不是在分配期间这样做 为了
  • 如何解析 XML diff 以仅显示差异

    我使用以下方法比较两个序列化对象的 xmlMS XmlDiffPatch 工具 http msdn microsoft com en us library aa302294 aspx C XML 示例 1
  • qt 读取就绪信号

    我正在尝试与运行 1996 年处理器的设备建立串行连接 这意味着数据传输回我可能需要几秒钟的时间 我知道readyRead每次有新数据可用时都会生成信号 但我的问题是生成多长时间 这也是我可以测试就绪读取是否较低的一种方法 因为如果当它们不
  • Xamarin Mac 中 AttributeName 的用途

    我正在尝试对 Xamarin 中的 NSMutableAttributedString 中的子字符串进行着色 但它似乎缺少正确的常量 我应该在那里放什么 Update 这越来越接近 var s new NSMutableAttributed

随机推荐

  • Python:判断字符串是否包含数学?

    给定这些字符串 1 2 apple pear 如何使用 Python 3 5 确定第一个字符串包含数学问题并且没有其他的而第二根弦没有 这是一种方法 import ast UNARY OPS ast UAdd ast USub BINARY
  • Amazon S3 托管流媒体视频 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如果我公开提供 Amazon s3 MP4 资源 然后在该资源的 URL 周围添加 Html5 视频标
  • 如果所有变量都是 float16 而不是 float32,如何运行定义 Tensorflow 图

    默认情况下 Tensorflow 变量采用 float32 格式 为了节省内存 我尝试以 float16 运行 在我的图表中 我在每个可以将数据类型定义为 float16 的地方都这样做了 但是 当我运行代码时出现错误 下面是我的代码 im
  • 在过程触发器内动态插入记录

    我们正在寻求将我们的数据库转换为 Postgres 9 3 5 我对此没有经验 并且我正在尝试让我们的审计表启动并运行 我知道每个表都需要自己的触发器 但所有触发器都可以调用单个函数 表上的触发器正在传递需要审核的列的列表 因为我们的某些列
  • WFFM 8.0 - 缺少保存到数据库操作

    我刚刚安装了 Web Forms For Marketers 8 0 并做了一个测试表单 尝试选择Save to Database从操作列表中但它不存在 另外 我已经检查过 sitecore system Modules Web Forms
  • 哪里有指示不应写入“程序文件”区域的指南?

    许多关于SO的问题都说 Windows开发人员指南 或 Windows设计指南 说你不应该将临时数据或程序数据写入程序文件区域 但据我所知 它们都没有真正链接到文档这就是说 搜索 MSDN 没有得到任何结果 Windows 将使该区域变为只
  • clojure(带超时...宏)

    我正在寻找一个宏 如果表达式完成时间超过 X 秒 它将引发异常 这个问题在这里有更好的答案 执行具有超时功能的函数 https stackoverflow com questions 6694530 executing a function
  • Visual Studio 将项目发布到一个简单的安装程序中

    我有一个相当大的项目 包含多个类 500 多个图像以及与该项目关联的 20 多个文本文件 我一直通过右键单击来发布我的项目project gt properties 然后单击 发布 选项卡 我已将文本文件和图像包含为resources已经
  • 如何使用 CSS 使 div 上的滚动条变粗?

    如果我使用 CSS 溢出属性 overflow scroll 默认情况下我得到一个细滚动条 我如何设计它以获得宽 且平坦 的滚动条 您可以在这里找到有关如何在多个浏览器上更改滚动条设计的答案 https stackoverflow com
  • Rails activesupport 通知 - 错误的数据库运行时值

    我正在尝试记录 REST API 应用程序的请求 我为此使用 Rails 通知 如下所示http railscasts com episodes 249 notifications in rails 3 http railscasts co
  • 更改 TortoiseGit 中的存储库 url

    我们刚刚将 git 存储库更新到了新位置 我正在使用 TortoiseGit 进行一些未提交的更改 我可以在任何地方更改文件夹引用吗 我在上下文菜单中没有看到该选项 如果可以避免的话 我宁愿不重新创建和合并 因为总共大约有 14 个存储库
  • 使用现有的 Rails 应用程序添加 twitter-bootstrap-rails

    我尝试将 twitter bootstrap rails 与现有的 Rails 应用程序一起使用 并在刷新页面时收到以下错误 没有要加载的文件 less 在 app assets stylesheets bootstrap and over
  • 如何将UIScrollView的触摸事件发送到其后面的视图?

    我在另一个视图之上有一个透明的 UIScrollView 滚动视图有内容 文本和图像 用于显示信息 它后面的视图有一些用户应该能够点击的图像 并且它们上面的内容可以使用提到的滚动视图进行滚动 我希望能够正常使用滚动视图 尽管没有缩放 但是当
  • 节点检查器无法连接到节点

    我运行节点 node debug app OR node debug brk app 它回应 debugger listening on port 5858 Express server listening on port 1338 我现在
  • 将 varchar 值转换为 int,如果输入错误,不会引发异常

    有没有办法调用 Sql Server 函数 Convert Cast 而不让它们抛出异常 基本上 我有一列包含字母数字数据 我正在从字段中提取值 并且我想将数据显示为整数值 有时提取的数据不是数字 在这些情况下我希望 Sql Server
  • 为什么我嵌入的 JointJS 元素重叠?

    我正在研究 JointJS 图 使用 DirectedGraph 来处理布局 我试图实现类似于下图的效果 我需要将节点 A B C D E F G H I J 概述 或包含在单独的节点 Foo Bar Hmm 中 当我将所有元素添加到图表中
  • Android 插件将使用哪个 cmake?

    在 Android Studio 3 3 中 我使用本机 C 库 它是用 CMake 构建的 Android 插件 v 3 2 1 将根据配置选择 内置 或 外部 cmakeexternalNativeBuild 如记录于开发者 andro
  • 证书被苹果拒绝

    While configuring certificate for Push Notification on my ios build of cordova project using OneSignal the certificate i
  • 带百分比的虚线圆条

    我正在尝试制作一个带有虚线的圆形进度条 我以编程方式创建stroke dasharray and stroke dashoffset用百分比画一个圆 我需要绘制虚线圆 而不是实心圆 如下所示 我无法将实心圆更改为虚线圆 我是否遗漏了一些东西
  • 使用 C# 中的字典计算字符串中每个重复单词的出现次数[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 编辑 我详细阐述了我的问题更多 解决方案在这里用于修复重复的单词 有人问我每个重复的单词 我是新手 可能不是一个好问题 这是字符串 stri