”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 案例研究:单词的出现

案例研究:单词的出现

发布于2024-07-31
浏览:370

本案例研究编写了一个程序,用于计算文本中单词的出现次数,并按单词的字母顺序显示单词及其出现次数。该程序使用 TreeMap 来存储由单词及其计数组成的条目。对于每个单词,检查它是否已经是映射中的键。如果没有,请向地图添加一个条目,其中单词为键,值为 1。否则,将地图中单词(键)的值增加 1。假设单词不区分大小写;例如,Good 的处理方式与 good.

相同

下面的代码给出了问题的解决方案。

Image description

a2
1 级
有趣1
好3
有 3
早上1
访问 1

程序创建一个TreeMap(第11行)来存储单词对及其出现次数。这些词作为钥匙。由于映射中的所有值都必须存储为对象,因此计数包含在 Integer 对象中。

程序使用 String 类中的 split 方法(第 13 行)从文本中提取单词。对于提取的每个单词,程序都会检查它是否已作为键存储在映射中(第 18 行)。如果不是,则由单词及其初始计数 (1) 组成的新对存储在映射中(第 19 行)。否则,单词的计数将增加 1(第 21-23 行)。

程序获取集合中映射的条目(第29行),并遍历集合以显示每个条目中的计数和键(第32-33行)。

由于地图是树形地图,因此条目按单词升序显示。您也可以按出现次数的升序显示它们。

现在坐下来想想如何在不使用地图的情况下编写这个程序。你的新程序会更长、更复杂。你会发现map是一个非常高效、强大的数据结构,可以解决诸如此类的问题。

版本声明 本文转载于:https://dev.to/paulike/case-study-occurrences-of-words-hnm?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    MySQL配置不正确:相对路径的问题在Django中运行python manage.py runserver时,可能会遇到以下错误:ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-...
    编程 发布于2024-12-21
  • 如何可靠地处理带有子元素的绝对定位 div 上的鼠标移出事件?
    如何可靠地处理带有子元素的绝对定位 div 上的鼠标移出事件?
    在没有 jQuery 的情况下处理带有子元素的绝对 Div 中的 Mouseout 事件处理绝对定位的 div 时,处理 mouseout 事件可能具有挑战性。默认情况下,如果鼠标悬停在父 div 内的子元素上,则在鼠标退出外部 div 之前,mouseout 事件会提前触发。要解决此问题,请考虑使...
    编程 发布于2024-12-21
  • PHP 的 `==` 和 `===` 运算符有什么区别?
    PHP 的 `==` 和 `===` 运算符有什么区别?
    PHP Double (==) 和 Triple (===) 相等比较有何不同?在 PHP 中比较值时,两个可以使用不同的运算符:松散相等 (==) 运算符和严格相同 (===) 运算符。了解它们的细微差别对于确保可靠的比较至关重要。松散相等 (==) 比较松散相等运算符在比较值之前执行类型杂乱操作...
    编程 发布于2024-12-21
  • 如何在 JavaScript 中对字符串执行数学运算?
    如何在 JavaScript 中对字符串执行数学运算?
    将字符串转换为数字进行数学运算尽管包含数字字符,但字符串不能直接作为数字进行操作。要执行算术运算,必须首先将它们转换为数字形式。考虑给出的示例:var num1 = '20', num2 = '30.5';直接添加这些字符串会导致串联:num1 num2; // '2030.5'要强制将...
    编程 发布于2024-12-21
  • 尽管代码有效,为什么 POST 请求无法捕获 PHP 中的输入?
    尽管代码有效,为什么 POST 请求无法捕获 PHP 中的输入?
    解决 PHP 中的 POST 请求故障在提供的代码片段中:action=''而不是:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"检查 $_POST数组:表单提交后使用 var_dump 检查 $_POST 数...
    编程 发布于2024-12-21
  • 为什么我的 Div 重叠?了解并解决保证金崩溃问题
    为什么我的 Div 重叠?了解并解决保证金崩溃问题
    边距折叠:理解和解决 Div 布局中的重叠设计具有多个 div 元素的布局时,理解边距的概念至关重要折叠以避免不必要的重叠边距。边距折叠是一种 CSS 行为,当相邻元素的边距合并在一起时会发生,有效地增加了它们之间的总边距空间。边距折叠的原因在您的具体情况,重叠边距可能是由于以下 CSS 规则的组合...
    编程 发布于2024-12-21
  • 第一个 PHP 8.3 候选版本现已可供测试
    第一个 PHP 8.3 候选版本现已可供测试
    即将推出的 PHP 版本的第一个候选版本 PHP 8.3 现已可供测试。 第一个普遍可用的 PHP 版本计划于今年 11 月 23 日发布,PHP 8.3 的第一个候选版本是一个重要的预发布里程碑,因为它表明了 PHP 8.3 的所有更改现在已经实现,只剩下完善和错误修复了。 在 11 月 2...
    编程 发布于2024-12-21
  • 插入数据时如何修复“常规错误:2006 MySQL 服务器已消失”?
    插入数据时如何修复“常规错误:2006 MySQL 服务器已消失”?
    插入记录时如何解决“一般错误:2006 MySQL 服务器已消失”介绍:将数据插入 MySQL 数据库有时会导致错误“一般错误:2006 MySQL 服务器已消失”。当与服务器的连接丢失时会出现此错误,通常是由于 MySQL 配置中的两个变量之一所致。解决方案:解决此错误的关键是调整wait_tim...
    编程 发布于2024-12-21
  • 如何正确处理 JSON 数据中的换行符?
    如何正确处理 JSON 数据中的换行符?
    处理 JSON 中的换行符处理 JSON 数据时,必须正确处理换行符以避免意外错误。下面是该问题及其解决方案的详细说明。问题使用 eval 或 JSON.parse 解析包含换行符的 JSON 数据时,可能会遇到这样的错误作为“未终止的字符串文字”。这是因为 JSON 中的双引号字符串中无法识别换行...
    编程 发布于2024-12-21
  • Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    编程 发布于2024-12-21
  • 您是否应该使用持久 PDO 连接:权衡性能收益与潜在风险?
    您是否应该使用持久 PDO 连接:权衡性能收益与潜在风险?
    使用持久 PDO 连接的缺点:意外后果虽然 PDO 中的持久连接旨在通过缓存和重用连接来增强性能,但它们可以还会引入可能影响性能的意外后果。事务和连接状态问题:持久连接的一个显着缺点是意外的脚本终止会留下打开的连接,这可能会导致各种问题:锁定表: 如果死脚本锁定了表,它们将保持锁定状态,直到持久连接...
    编程 发布于2024-12-21
  • 大批
    大批
    方法是可以在对象上调用的 fns 数组是对象,因此它们在 JS 中也有方法。 slice(begin):将数组的一部分提取到新数组中,而不改变原始数组。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index p...
    编程 发布于2024-12-21
  • 如何在 PHP 中显示 MySQL BLOB 图像?
    如何在 PHP 中显示 MySQL BLOB 图像?
    从 MySQL 显示 PHP BLOB 图像背景在 MySQL 数据库中将图像作为二进制大对象 (BLOB) 存储和检索是一种常见技术。然而,显示这些图像有时可能具有挑战性。解决方案插入图像:使用 file_get_contents 函数读取图像使用 PREPARED STATEMENT 将图像数据...
    编程 发布于2024-12-21
  • 在 Go 中使用 WebSocket 进行实时通信
    在 Go 中使用 WebSocket 进行实时通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSocke...
    编程 发布于2024-12-21
  • 深入研究 Reactjs
    深入研究 Reactjs
    模因生成器 Meme Generator 是一个有趣的交互式 Web 应用程序,允许用户使用各种模板创建自定义 Meme。我已经通过教育平台学习软件开发几个月了,这个项目是课程的一部分。 目录 演示 特征 技术堆栈 安装 用法 作者 执照 表达您的支持 ...
    编程 发布于2024-12-21

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3