2013-01-21 98 views
1

我想比较两个NSString s。如果用户输入“Stonehhengge”,应该得到“答案边框”=“几乎等于”,因为正确答案是:“Stonhenge”。比较两个NSStrings的相似度

我想一个字符串等于另一个字符串的百分比。如果“Stonhenge”是9个字母,并且输入的文本包含8个来自“Stonhenge”的字母,但它不等于“Stonhenge”,例如:“Stonehange”不等于“Stonhenge”,但它接近 - 我会想知道弦乐队的比赛有多近。

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

+0

你需要查找模糊逻辑字符串匹配,或字符串匹配启发式...我不认为有任何自动。 –

+0

@incmiko我编辑你的问题,使其更清楚你问的问题,如果你认为我歪曲事情,请让我知道。 –

回答

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;