比较两个NSStrings的相似性

时间:2013-01-21 19:06:08

标签: cocoa-touch nsstring compare

我想比较两个NSString。如果用户键入“Stonehhengge”,应该得到“回答边界”=“几乎等于”,因为正确答案是:“Stonhenge”。

我想要一个字符串等于另一个字符串的百分比。如果“Stonhenge”是9个字母,并且键入的文本包含来自“Stonhenge”的8个字母,但它不等于“Stonhenge”,例如:“Stonehange”不等于“Stonhenge”,但它接近 - 我是想知道字符串的匹配程度。

我只知道isEqual:。如果您输入“巨石阵”,则匹配并获得正确的符号。如果文本字段的文本不相等,则不会得到匹配并得到错误的符号。

2 个答案:

答案 0 :(得分:3)

修改 你想要的是计算Levenshtein Distance

您可以查看此问题Calculate number of differences between two NSStrings

答案 1 :(得分:0)

我喜欢这个图书馆,StringScore https://github.com/thetron/StringScore

它为您提供了这些有用的方法:

- (CGFloat) scoreAgainst:(NSString *)otherString;

- (CGFloat) scoreAgainst:(NSString *)otherString fuzziness:(NSNumber *)fuzziness;

- (CGFloat) scoreAgainst:(NSString *)otherString fuzziness:(NSNumber *)fuzziness options:(NSStringScoreOption)options;