如何计算NSString中的大写字符数?

时间:2011-08-21 22:19:59

标签: iphone objective-c c nsstring range

我正在尝试找出计算NSString中大写字符数的最佳方法。我知道如何通过使用此代码来确定某个字符是否为大写:

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

计算NSString中大写字母数的最佳方法是什么?感谢。

3 个答案:

答案 0 :(得分:8)

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是大写出现次数。

答案 1 :(得分:2)

逐个遍历字符串中的索引,并在找到大写字母时将1添加到计数器。

答案 2 :(得分:1)

一线解决方案

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