假设有两个字符串:
字符串 1
:“从前有一位美丽的公主,名叫白雪公主……”String 2
:“当然,这是一位美丽的公主成为公主的时候......”
在 Swift 中找到两个字符串的字级最长“交集”(或所有可能的交集)的最佳方法是什么?在前面的例子中,它将是:“一位美丽的公主”。
最佳答案
您可以使用计算两个文本差异的库。我用 DiffMatchPatch ,什么对我有用。
要让它在单词级别工作,您可以做两件事:
获取结果并查看运行者的边界是否在单词内。在这种情况下,将运行者缩短到单词边界。
将每个不同的单词翻译成单个 UTF-16 字符(
NSString
内部使用的字符),然后对该文本运行 diff。由于每个单词都变成了一个字母,因此结果在语义上将包含单词而不是字母。
关于swift - 在 Swift 3 中查找两个字符串的字级最长(或全部)交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40842646/