How to get an array of sentences using CFStringTokenizer?

后端 未结 2 1127
孤独总比滥情好
孤独总比滥情好 2020-12-15 10:59

I\'ve created an string tokenizer like this:

stringTokenizer = CFStringTokenizerCreate(
                         NULL
                         , (CFStringRef         


        
相关标签:
2条回答
  • 2020-12-15 11:44

    You may also use:

        [mutstri enumerateSubstringsInRange:NSMakeRange(0, [mutstri length])
                                    options:NSStringEnumerationBySentences
                                 usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){
    
                                     NSLog(@"%@", substring);
    
                                 }];
    
    0 讨论(0)
  • 2020-12-15 11:47

    Here is an example of CFStringTokenizer usage:

    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);
    
    0 讨论(0)
提交回复
热议问题