问题
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
来源:https://stackoverflow.com/questions/7141545/how-to-count-the-number-of-uppercase-characters-in-a-nsstring