2011-08-21 5 views
4

NSString에있는 대문자의 수를 세는 가장 좋은 방법을 찾으려고합니다.NSString에서 대문자 수를 계산하는 방법은 무엇입니까?

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

는 무엇있는 NSString에서 대문자의 수를 계산하는 가장 좋은 방법이 될 것입니다 : 특정 문자가이 코드를 사용하여 대문자 경우 내가 찾는 방법을 알고? 감사.

+2

매우 짧은 아니지만 대부분 확대됨 방법 : '[S componentsSeparatedByCharactersInSet [NSCharacterSet uppercaseLetterCharacterSet] 카운트] - 1;'. – albertamg

+0

+1 정말 잘됩니다! 감사합니다 – 0SX

답변

7
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은 대문자 숫자입니다.

+0

코드가 처음 엔 이상한 숫자를줍니다. 79050146 ... 정말 이상하게 작동합니다. 이것이 왜 내가이 긴 숫자를주는 모든 아이디어? – 0SX

+1

초기화되기 전에 루프에'count'를 출력하면 이상한 값을줍니다. 쓰레기 값을 막기 위해'int count;'를'int count = 0;'으로 변경하십시오. – Dair

+0

+1 감사합니다. 지금 ... – 0SX

2

대문자를 찾을 때마다 문자열의 색인을 하나씩 살펴보고 카운터에 1을 추가하십시오.

+0

+1 나는이 일을해야 할 수도 있다고 생각, 고마워. – 0SX

1

한줄 용액

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