2016-08-29 1 views
0

есть ли способ, чтобы найти прописные вхождения любого конкретного символа в NSString, например:Как найти число вхождений конкретного символа в верхнем регистре в NSString?

NSString *[email protected]"How many U's are in Uppercase"; 

Что я пытался дает все прописные символы,

int count=0; 
for (i = 0; i < [str length]; i++) { 
    BOOL isUppercase = [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[str characterAtIndex:i]]; 
    if (isUppercase == YES) 
     count++; 
} 

ИЛИ

[[str componentsSeparatedByCharactersInSet:[NSCharacterSet uppercaseLetterCharacterSet]] count] - 1; 

Но мне нужны прописные вхождения любого конкретного символа в NSString.

+0

Вы имеете в виду заглавную позицию в строке или общего верхнего регистра счетчика? –

+0

Какой ответ вы ожидаете от примера, который вы даете? 3 (число прописных букв) или 2 (номер верхнего регистра U)? – Paulw11

+0

общее количество, например, сколько «U» находится в Uppercase @ TejaNandamuri –

ответ

3

Вы можете сделать это с регулярным выражением:

NSString *str = @"How many U's are in Uppercase"; 
NSString *pattern = @"U"; 
NSRegularExpression *expression = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil]; 
NSArray *result = [expression matchesInString:str options:0 range:NSMakeRange(0, str.length)]; 
NSLog(@"%ld", result.count); // 2 
+0

он будет давать только прописные буквы U или будет содержать строчные буквы u в count также? @vadian –

+0

, он даст вам только счетчик верхних строчек, так как patter @ «U» находится в верхнем регистре. @RonakChaniyara –

+1

@RonakChaniyara Только заглавные буквы. Но вы можете предоставить * caseinsensitive * вариант, чтобы получить как – vadian

1

Если вы действительно хотите использовать NSCharacterSet, есть characterSetWithCharactersInString для создания пользовательского. Я не уверен, что есть какое-то преимущество по сравнению с просто циклом над строкой с ==.

+0

, это будет здорово, если вы можете предоставить базовый фрагмент кода или логику @ Phillip Mills –

Смежные вопросы