swift - 在 Swift 3 中查找两个字符串的字级最长(或全部)交集

标签 swift string nsstring swift3

假设有两个字符串:

  • 字符串 1:“从前有一位美丽的公主,名叫白雪公主……”
  • String 2:“当然,这是一位美丽的公主成为公主的时候......”

在 Swift 中找到两个字符串的字级最长“交集”(或所有可能的交集)的最佳方法是什么?在前面的例子中,它将是:“一位美丽的公主”

最佳答案

您可以使用计算两个文本差异的库。我用 DiffMatchPatch ,什么对我有用。

要让它在单词级别工作,您可以做两件事:

  • 获取结果并查看运行者的边界是否在单词内。在这种情况下,将运行者缩短到单词边界。

  • 将每个不同的单词翻译成单个 UTF-16 字符(NSString 内部使用的字符),然后对该文本运行 diff。由于每个单词都变成了一个字母,因此结果在语义上将包含单词而不是字母。

关于swift - 在 Swift 3 中查找两个字符串的字级最长(或全部)交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40842646/

相关文章:

c - 从文件中读取,但不是每一行

ios - Objective-C 删除 ANSI 颜色控制代码

ios - Audiokit 4.9.5 在 xcode 11.4 + swift 5.2 中崩溃,没有有用的错误消息

c++ - 使用VC10的C++ std::string问题

PHP删除字符串中的一个字符

ios - 检查字符串是否具有有效数字

iphone - 提取NSCFConstantString的第一项

ios - 基于平移手势翻译的滚动scrollview

ios - Swift - 获取本地日期和时间

ios - 如何在 ios/swift 中将 url 转换为字符串?