iphone xcode target-c:
У меня есть строка с большим количеством текста ..
Я хочу определить, сколько раз @ "привет" в строке ...
Я знаю, как определить, есть это или нет, но как определить, сколько раз он появляется в строке?
Вы можете использовать регулярные выражения для этого:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\bhello\\b" options:NSRegularExpressionCaseInsensitive error:NULL]; NSUInteger numberOfMatches = [regex numberOfMatchesInString:someString options:0 range:NSMakeRange(0, [string length])];
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++; } }
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
Возможно, вам придется немного поиграть с регулярным выражением.