如何查找特定字符在 NSString 中以大写形式出现的次数?

How to find number of occurrences of particular character are in uppercase in NSString?

有什么方法可以找到 NSString 中任何特定字符的大写出现,例如:

NSString *str=@"How many U's are in Uppercase";

我尝试的是全部大写字符,

int count=0;  
for (i = 0; i < [str length]; i++) {
    BOOL isUppercase = [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[str characterAtIndex:i]];
    if (isUppercase == YES)
       count++;
}

[[str componentsSeparatedByCharactersInSet:[NSCharacterSet uppercaseLetterCharacterSet]] count] - 1;

但我需要在 NSString 中出现任何特定字符的大写字母。

如果您真的想使用 NSCharacterSet,可以使用 characterSetWithCharactersInString 来构建自定义的。不过,与仅使用 == 循环字符串相比,我不确定是否有任何优势。

你可以用正则表达式来做:

NSString *str = @"How many U's are in Uppercase";
NSString *pattern = @"U";
NSRegularExpression *expression = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *result = [expression matchesInString:str options:0 range:NSMakeRange(0, str.length)];
NSLog(@"%ld", result.count); // 2