检查两个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的结果。 我还没有检查是否UITextField
和UITextFieldDelegate
。