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

时间:2016-11-28 10:59:14

标签: swift string nsstring swift3

假设有两个字符串:

  • String 1:“从前有一位名叫白雪公主的美丽公主......”
  • String 2:“当然是一个美丽的公主成为一个人的时候......”

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

1 个答案:

答案 0 :(得分:0)

您可以使用lib来计算两个文本的差异。我使用DiffMatchPatch,这对我有用。

要使其在单词级别上运行,您可以做两件事:

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

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