是否有内置方法(我无法通过搜索文档找到它)来查看两个字符串中相似字母的数量?字母的顺序无关紧要,因此将“abc”与“cad”进行比较将对字符“c”和“d”具有66%的匹配率。发生的次数也很重要。 “a”应该在第一次匹配,但第二次不匹配,因为两个字符串之间只有一个共同的“a”。目前是否有内置的方法可以通过使用按位操作来执行此操作,还是必须循环并手动比较?
最佳答案
您将必须自己构建它,但这是执行此操作的捷径。有一个内置的集合类NSCountedSet
。该对象保留每个唯一对象以及每个对象的添加数量。
您可以采用两个字符串并将其字符加载到两个不同的NSCountedSet
集合中。然后,只需检查结果集合中的项目即可。例如,从第一个NSCountedSet
抓取一个对象。检查第二个NSCountedSet
中是否存在它。该特定字母的2个计数中较小的一个是2个字符串共有多少个字母。为了缩短迭代次数,请从具有较少对象的集合开始,然后枚举这些对象。
这是Apple的NSCountedSet
文档。
https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSCountedSet_Class/Reference/Reference.html
关于iphone - NSString内置的方法来比较相似字符的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15258624/