问题标签 [string-comparison]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
545 浏览

comparison - 有什么好方法可以找到两个文本体的“相关性”?

这就是问题所在——我有几千个小文本片段,从几个单词到几个句子不等——最大的片段在磁盘上大约有 2k。我希望能够相互比较,并计算相关性因子,以便向用户显示相关信息。

有什么好的方法可以做到这一点?是否有已知的算法可以做到这一点,是否有任何 GPL 解决方案等?

我不需要它来实时运行,因为我可以预先计算一切。我更关心获得好的结果而不是运行时。

我只是想在编写自己的东西之前先问问 Stack Overflow 社区。必须有人在此之前找到了很好的解决方案。

0 投票
3 回答
4192 浏览

c# - 为什么 string.Compare 似乎不一致地处理重音字符?

如果我执行以下语句:

结果为“-1”,表示“mun”的数值小于“mün”。

但是,如果我执行此语句:

我得到“1”,表示“Muntelier, Schewiz”应该排在最后。

这是比较中的错误吗?或者,更有可能的是,在对包含重音的字符串进行排序时,我应该考虑一个规则


这是一个问题的原因是,我正在对列表进行排序,然后进行手动二进制过滤器,这意味着每个字符串都以“xxx”开头。

以前我使用的是 Linq 'Where' 方法,但现在我必须使用另一个人编写的这个自定义函数,因为他说它性能更好。

但是自定义函数似乎没有考虑 .NET 的任何“unicode”规则。因此,如果我告诉它按“mün”过滤,它不会找到任何项目,即使列表中有以“mun”开头的项目。

这似乎是因为重音字符的顺序不一致,具体取决于重音字符后面的字符。


好的,我想我已经解决了这个问题。

在过滤器之前,我根据每个字符串的前n 个字母进行排序,其中n是搜索字符串的长度。

0 投票
7 回答
21065 浏览

python - Python:为什么 ("hello" is "hello") 评估为 True?

为什么用 Python"hello" is "hello"生成?True

我在这里阅读了以下内容:

如果两个字符串文字相等,则它们已被放入相同的内存位置。字符串是不可变的实体。不能造成任何伤害。

那么每个 Python 字符串在内存中只有一个位置吗?听起来很奇怪。这里发生了什么?

0 投票
3 回答
1170 浏览

mercurial - Mercurial 对某些文件类型执行二进制比较

可能重复:
为什么 Mercurial 认为我的 SQL 文件是二进制文件?

我最近开始使用 Mercurial,当我恢复我的一个 .SQL 文件时,Mercurial 执行了二进制比较。这显然限制了所做更改的可见性,因为没有差异。

是否可以设置文件类型以进行字符串比较?

我正在使用 Tortioise Hg 0.8.1 和 Mercurial 1.3.1。

0 投票
2 回答
598 浏览

c++ - 用数字正确排序名称

对于排序项目名称,我想正确支持数字。即:

代替

有谁知道已经支持它的比较函子?
(即可以传递给的谓词std::sort

我基本上有两种模式要支持:前导数字(如上)和末尾数字,类似于资源管理器:

(我想我可以解决这个问题:按字符进行比较,并以不同的方式处理数值。但是,这可能会破坏 unicode collaiton 之类的)

0 投票
1 回答
2947 浏览

python - 相同的字符串在 Python 中返回 FALSE 和 '==',为什么?

通过套接字连接接收数据字符串。当接收到动作变量将='IDENTIFY'的第一个示例时,它可以工作。但是当接收到第二个示例时,动作变量将 = 'MSG' 它不进行比较。

最奇怪的是,当我使用 Telnet 而不是我的套接字客户端时,两者都被成功比较。但是字符串是相同的......是否有可能字符串的编码方式不同?我怎么知道?

数据示例:

0 投票
3 回答
11725 浏览

objective-c - NSString isEqualToString: for \n

我有一个调用网络服务的 Cocoa 应用程序。当我解析来自 Web 服务的响应时,我得到一个 \n 作为 XML 中每个元素的 NSXMLParser 的 foundCharacters 委托中的最后一个字符。

当我尝试执行以下操作时:

检查将始终无法捕获换行符。有人知道字符串检查换行符的好方法吗?

我也觉得奇怪的是,每个元素在每个值的末尾都有一个换行符,尽管我在 Web 服务的输出中没有看到任何证据。

对于应该非常容易做到的事情来说,这是一个相当大的问题。

0 投票
3 回答
830 浏览

php - php中的部分字符串比较

我在两个字符串中存储了两个 IP 地址值

我只想比较 ip 地址的前两部分,即116.95两个字符串中的部分,因为它在两个字符串中都相同,所以我的比较应该返回 true。如何在 PHP 中进行部分字符串比较?

0 投票
6 回答
437 浏览

c++ - 常量字符串地址

我的程序中有几个相同的字符串常量:

是否保证它们具有相同的地址,即我可以编写以下代码吗?我听说 GNU C++ 优化了字符串,所以它们具有相同的地址,我可以在我的程序中使用该功能吗?

0 投票
4 回答
61909 浏览

sql - 在 t-sql 中转换 nvarchar 变量的排序规则

我需要更改 nvarchar 变量的排序规则。通过文档

(...) 3. 可以在多个级别指定 COLLATE 子句。其中包括:

转换表达式的排序规则。您可以使用 COLLATE 子句将字符表达式应用于某个排序规则。字符文字和变量被分配了当前数据库的默认排序规则。列引用被分配列的定义排序规则。有关表达式的排序规则,请参阅排序规则优先级 (Transact-SQL)。

但是,我无法找出使用 CAST()、CONVERT() 或带有 DECLARE 的变量声明用于此目的的正确语法。