如何计算字符串中的唯一字符数

时间:2009-08-24 12:27:53

标签: iphone sdk nsstring

如何获取String中唯一字符的数量?

例如:

NSString * myString = @“Hello”;

我希望计数为4而不是5。

我试图使用myString的NSCharacterSet并获取计数,但似乎它不起作用。

NSCharacterSet * myCharSet = [NSCharacterSet characterSetWithCharactersInString:myString];

[myCharSet count];

感谢您的提示。

3 个答案:

答案 0 :(得分:2)

代码的衍生物:

NSCharacterSet *myCharSet = [NSCharacterSet
              characterSetWithCharactersInString:@"Hello"];    
NSLog(@"Character Set Count: %d", [myCharSet count]);

即使它在编译时发出警告,似乎仍然有效。当我运行它时,它会打印“字符集计数:4”。

作为替代方案,NSSet的工作原理是它只允许使用唯一值。您可以将所有字符添加到NSSet,然后获取其计数:

NSSet *set = [NSSet setWithArray:[@"H e l l o" 
                componentsSeparatedByString:@" "]];

NSLog(@"Set Count: %d", [set count]);

打印“Set Count:4”

答案 1 :(得分:0)

试试这个:

NSString *myString = @"Hello";
    NSRange range = NSMakeRange(location,length);
    NSString *myCharSet = [myString substringWithRange:range];

答案 2 :(得分:0)

您的代码适合我。如果你试图在另一个例程中稍后获取[myCharSet count],可能是因为myCharSet需要保留,并且最初设置为autorelease。