ruby - “包括?” 方法与作为数组元素和字符串传递的相同字符串的工作方式不同
问题描述
谁能解释为什么当我尝试通过将文本作为数组元素和整个字符串传递来检查文本是否包含字符串时,会得到不同的结果?
bullets[30]
#=> "eines Zahnes), da es zu einer verstärkten Blutungsneigung kommen kann; Der behandelnde Arzt sollte über die Einnahme des Medikamentes informiert werden. "
desc.include?(bullets[30])
#=> false
desc.include?("eines Zahnes), da es zu einer verstärkten Blutungsneigung kommen kann; Der behandelnde Arzt sollte über die Einnahme des Medikamentes informiert werden. ")
#=> true
bullets[30].class
#=> String
解决方案
谁能解释为什么当我尝试通过将文本作为数组元素和整个字符串传递来检查文本是否包含字符串时,会得到不同的结果?
唯一可能的解释是两个字符串不相等。
- 它们可以有不同的编码(例如,一种是 UTF-8,一种是 ISO8859-15)。
- 它们可以有不同的 Unicode 规范化,例如
ä
,一个字符串中的一个字符串可以是带有分音符号的U+00E4拉丁小写字母 a,另一个使用U+0061拉丁小写字母 a和U+0308组合字符分音符。 - 其中一个字符串可能具有 Unicode 字节顺序标记。
- 其中一个字符串可能有额外的不可见空格。
- 其中一个字符串可能有额外的不可打印字符。
- 字符串可以有不同的空格,例如一个字符串有一个正常的空格,另一个有一个不间断的空格。
推荐阅读
- c# - 唤醒 Azure 功能
- c# - 如何检查进程是否由 Visual Studio > 2015 启动
- javascript - Django:数据未提交到数据库,但没有错误
- java - 除非重新创建,否则颜色对象不能用作颜色
- java - 我可以在正则表达式中组合 unicode 类别吗?
- flutter - 在flutter中使用video_player插件时如何显示视频的当前播放时间?
- c# - ASP.NET Core 2.2 MVC MapRoute 项目到 ASP.NET 3.0 端点 MapAreaControllerRoute“找不到这个 localhost 页面”
- android - RecyclerView 适配器中的 OnClickListener 未初始化
- javascript - 在 Gatsby 博客中的 url 路径中附加 %20
- arrays - 功能组件中数组的映射以及对特定对象的访问