检查两个NSStrings是否相似

我提出一个棘手的问题,我不知道如何处理。 所以,我制定了一个含有两个对象的字典,

  • 国名
  • 国家的插头尺寸

尽pipe只有210个国家/事实。

而且,我已经能够search许多国家的名单,其中可能有事实与否。 但是,这里是我的问题,我使用的是一个名为Geonames的Web服务,用户可以使用search栏显示控制器来search国家,而这些与插件大小配对的plist国名实际上来自Wikipedia文章。

现在,在Geonames和Wikipedia中我的plist中命名的国家可能会被命名为稍有不同,也许有一个额外的空间,一个额外的短划线,一个额外的字母。 这就是为什么我想看看geoname国家string是否非常类似于plist中的string。

所以,这不会是isEqualToString:因为它发现如果是确切的,可以compare:方法的工作?

我怎样才能解决这个问题? 这里是一个例子:

Geoname返回(不是一个真正的国家只是一个例子):

  • 依婷

但是plist可能会返回:

  • Yitting

所以有一个额外的'吨',但也有其他的情况。 我希望这些比较是精确的,或者至less是相似的,所以我可以把它们看作是一个匹配。

有没有教程,资源,项目等,你可以指向我?

谢谢! 再见!

Soundexalgorithm在这种情况下很有用。

我在github上find了一个示例实现 。

您需要实现一个近似匹配string的algorithm。 其中最stream行的这种algorithm是Levenshtein距离 ,它是几种编辑距离algorithm之一。 距离的计算方法是将stringA转换为stringB所需的编辑操作次数 – 插入,删除或更改字符计数为一次编辑操作。 string越近,它们之间的编辑距离越小。 您可以计算成对编辑距离,并find最小的一个来标识匹配。

你可能会发现这个post关于自动更新/完整有用:

我已经testing了UITextViewDelegate在UIViewController类中遵守UITextViewDelegate协议的同时工作良好,并且会产生类似于您在“消息”应用程序中find的结果。 我还没有检查是否UITextFieldUITextFieldDelegate

自动完成/自动更正