如何获取String中唯一字符的数量?
例如:
NSString * myString = @“Hello”;
我希望计数为4而不是5。
我试图使用myString的NSCharacterSet并获取计数,但似乎它不起作用。
NSCharacterSet * myCharSet = [NSCharacterSet characterSetWithCharactersInString:myString];
[myCharSet count];
感谢您的提示。
答案 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。