2013-01-21 140 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;