How to count the number of uppercase characters in an NSString?

I am trying to find a better way to count the number of uppercase characters that are in NSString. I know how to find out if a certain character is uppercase 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 capital letters in an NSString? Thanks.

+4
source share
3 answers
 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 - the number of uppercase entries.

+7
source

Browse the indexes in a row one by one and add 1 to the counter whenever you find an uppercase letter.

+2
source

Single line solution

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

All Articles