我想比较两个NSString
。如果用户键入“Stonehhengge”,应该得到“回答边界”=“几乎等于”,因为正确答案是:“Stonhenge”。
我想要一个字符串等于另一个字符串的百分比。如果“Stonhenge”是9个字母,并且键入的文本包含来自“Stonhenge”的8个字母,但它不等于“Stonhenge”,例如:“Stonehange”不等于“Stonhenge”,但它接近 - 我是想知道字符串的匹配程度。
我只知道isEqual:
。如果您输入“巨石阵”,则匹配并获得正确的符号。如果文本字段的文本不相等,则不会得到匹配并得到错误的符号。
答案 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;