Как посчитать количество символов в верхнем регистре в строке NSString? - PullRequest
4 голосов
/ 22 августа 2011

Я пытаюсь найти лучший способ подсчитать количество символов в верхнем регистре в строке NSString.Я знаю, как узнать, является ли определенный символ заглавными, используя этот код:

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

Как лучше всего подсчитать количество заглавных букв в строке NSString?Спасибо.

Ответы [ 3 ]

8 голосов
/ 22 августа 2011
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 - количество вхождений в верхнем регистре.

2 голосов
/ 22 августа 2011

Пройдите по порядку индексы в строке и добавьте 1 к счетчику, когда найдете заглавную букву.

1 голос
/ 29 ноября 2013

Однолинейное решение

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