检查nsstring中的多个字符

时间:2009-07-02 06:06:09

标签: iphone

我有一个字符串,我想检查此字符串中的多个字符以下代码我正在为一个字符正常工作如何检查多个字符。

NSString *yourString = @"ABCCDEDRFFED"; // For example
NSScanner *scanner = [NSScanner scannerWithString:yourString];

NSCharacterSet *charactersToCount = @"C" // For example
NSString *charactersFromString;

if (!([scanner scanCharactersFromSet:charactersToCount intoString:&charactersFromString])) {
    // No characters found
    NSLog(@"No characters found");
}

NSInteger characterCount = [charactersFromString length];

3 个答案:

答案 0 :(得分:6)

更新: 之前的示例已被破坏,因为NSScanner不应该像这样使用。这是一个更直接的例子:

NSString* string = @"ABCCDEDRFFED";
NSCharacterSet* characters = [NSCharacterSet characterSetWithCharactersInString:@"ABC"];
NSUInteger characterCount;

NSUInteger i;
for (i = 0; i < [yourString length]; i++) {
  unichar character = [yourString characterAtIndex:i];
  if ([characters characterIsMember:character]) characterCount++;
}

NSLog(@"Total characters = %d", characterCount);

答案 1 :(得分:0)

在NSCharacterSet中查看以下方法:

+ (id)characterSetWithCharactersInString:(NSString *)aString

您可以使用该类方法创建一个包含多个字符的字符集(因此命名为字符集)。参数是一个字符串,该字符串中的每个字符都将以字符集结尾。

答案 2 :(得分:0)

同时查找NSCountedSet。它可以帮助您保持同一角色的多个实例的计数。

例如,来自docs:

countForObject: 返回与接收器中给定对象关联的计数。

- (NSUInteger)countForObject:(id)anObject

参数 一个东西 要返回计数的对象。

返回值 与接收器中的anObject关联的计数,可以被认为是接收器中出现的对象的出现次数。