How to get an array of offers using CFStringTokenizer?

I created a string tokenizer as follows:

stringTokenizer = CFStringTokenizerCreate( NULL , (CFStringRef)str , CFRangeMake(0, [str length]) , kCFStringTokenizerUnitSentence , userLocale); 

But how do I get these offers from the tokenizer now? CF String Programming Guide does not mention CFStringTokenizer or tokens (performed a full-text search in a PDF file).

+8
cocoa nsstring cfstring
source share
2 answers

The following is an example of using CFStringTokenizer :

 CFStringRef string; // Get string from somewhere CFLocaleRef locale = CFLocaleCopyCurrent(); CFStringTokenizerRef tokenizer = CFStringTokenizerCreate( kCFAllocatorDefault , string , CFRangeMake(0, CFStringGetLength(string)) , kCFStringTokenizerUnitSentence , locale); CFStringTokenizerTokenType tokenType = kCFStringTokenizerTokenNone; unsigned tokensFound = 0; while(kCFStringTokenizerTokenNone != (tokenType = CFStringTokenizerAdvanceToNextToken(tokenizer))) { CFRange tokenRange = CFStringTokenizerGetCurrentTokenRange(tokenizer); CFStringRef tokenValue = CFStringCreateWithSubstring( kCFAllocatorDefault , string , tokenRange); // Do something with the token CFShow(tokenValue); CFRelease(tokenValue); ++tokensFound; } // Clean up CFRelease(tokenizer); CFRelease(locale); 
+16
source share

You can also use:

  [mutstri enumerateSubstringsInRange:NSMakeRange(0, [mutstri length]) options:NSStringEnumerationBySentences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){ NSLog(@"%@", substring); }]; 
0
source share

All Articles