Определить, сколько раз слово появляется в строке - iphone xcode target-c - PullRequest
0 голосов
/ 23 сентября 2011

iphone xcode target-c:

У меня есть строка с большим количеством текста ..

Я хочу определить, сколько раз @ "привет" в строке ...

Я знаю, как определить, есть это или нет, но как определить, сколько раз он появляется в строке?

Ответы [ 3 ]

4 голосов
/ 23 сентября 2011

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

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\bhello\\b" options:NSRegularExpressionCaseInsensitive error:NULL];
NSUInteger numberOfMatches = [regex numberOfMatchesInString:someString options:0 range:NSMakeRange(0, [string length])];
2 голосов
/ 23 сентября 2011
NSUInteger count = 0, length = [yourString length];
NSRange range = NSMakeRange(0, length); 
while(range.location != NSNotFound)
{
  range = [yourString rangeOfString: @"hello" options:0 range:range];
  if(range.location != NSNotFound)
  {
    range = NSMakeRange(range.location + range.length, length - (range.location + range.length));
    count++; 
  }
}
0 голосов
/ 23 сентября 2011
NSRegularExpression *aRegex = [[NSRegularExpression alloc] initWithPattern:@"Hello" options:NSRegularExpressionCaseInsensitive error:nil];
NSString *targetString = @"Hello, Albert! Hello, again!";
NSInteger numberOfMatches = [aRegex numberOfMatchesInString:targetString options:0 range:NSMakeRange(0, [targetString length])];
[aRegex release];
NSLog(@"number of matches: %d", numberOfMatches); // 2

Возможно, вам придется немного поиграть с регулярным выражением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...