How to count the number of uppercase characters in

2019-04-10 04:25发布

问题:

I'm trying to find out the best way to count the number of uppercase characters that are in a NSString. I know how to find out if a certain character is uppercase by using this code:

NSString *s = @"This is a string";
BOOL isUppercase = [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[s characterAtIndex:0]];

What would be the best way to count the number of uppercase letters in a NSString? Thanks.

回答1:

NSString *s = @"This is a string";  
int count=0;  
for (i = 0; i < [s length]; i++) {
    BOOL isUppercase = [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[s characterAtIndex:i]];
    if (isUppercase == YES)
       count++;
}

count is the number of uppercase occurences.



回答2:

Walk through the indices in the string one by one and add 1 to a counter whenever you find an uppercase letter.



回答3:

One line solution

 NSUInteger count = [[[@"A string HERE!!" componentsSeparatedByCharactersInSet:[[NSCharacterSet uppercaseLetterCharacterSet] invertedSet]] componentsJoinedByString:@""] length]; // count = 5