NSString中提取单词 enumerateSubstringsInRange NSCharacterSet CFStringTokenizerRef
来源:互联网 发布:muscletech淘宝真假 编辑:程序博客网 时间:2024/06/06 01:03
方法1:
NSString *popo = @"Lorem __ ! @ () "" ipsum "" dolar ?~ * # $ % ^ & < >{}\\ |;:sit amet."; [popo enumerateSubstringsInRange:NSMakeRange(0, popo.length) options:NSStringEnumerationByWords usingBlock:^(NSString * _Nullable substring, NSRange substringRange, NSRange enclosingRange, BOOL * _Nonnull stop) { NSLog(@"substring :%@",substring); NSLog(@"substringRange:%lu,length:%lu",(unsigned long)substringRange.location,substringRange.length); NSLog(@"enclosingRange:%lu,length:%lu \n\n",(unsigned long)enclosingRange.location,enclosingRange.length); }];
打印日志:
2015-11-02 17:22:07.244 AFNetWorkingDemo[8620:300513] substring :Lorem2015-11-02 17:22:07.245 AFNetWorkingDemo[8620:300513] substringRange:0,length:52015-11-02 17:22:07.245 AFNetWorkingDemo[8620:300513] enclosingRange:0,length:6 2015-11-02 17:22:07.245 AFNetWorkingDemo[8620:300513] substring :__2015-11-02 17:22:07.245 AFNetWorkingDemo[8620:300513] substringRange:6,length:22015-11-02 17:22:07.245 AFNetWorkingDemo[8620:300513] enclosingRange:6,length:11 2015-11-02 17:22:07.245 AFNetWorkingDemo[8620:300513] substring :ipsum2015-11-02 17:22:07.245 AFNetWorkingDemo[8620:300513] substringRange:17,length:52015-11-02 17:22:07.245 AFNetWorkingDemo[8620:300513] enclosingRange:17,length:7 2015-11-02 17:22:07.246 AFNetWorkingDemo[8620:300513] substring :dolar2015-11-02 17:22:07.246 AFNetWorkingDemo[8620:300513] substringRange:24,length:52015-11-02 17:22:07.246 AFNetWorkingDemo[8620:300513] enclosingRange:24,length:33 2015-11-02 17:22:07.246 AFNetWorkingDemo[8620:300513] substring :sit2015-11-02 17:22:07.246 AFNetWorkingDemo[8620:300513] substringRange:57,length:32015-11-02 17:22:07.273 AFNetWorkingDemo[8620:300513] enclosingRange:57,length:5 2015-11-02 17:22:07.273 AFNetWorkingDemo[8620:300513] substring :amet2015-11-02 17:22:07.273 AFNetWorkingDemo[8620:300513] substringRange:62,length:42015-11-02 17:22:07.273 AFNetWorkingDemo[8620:300513] enclosingRange:62,length:5
CFStringRef string1 = (__bridge CFStringRef)([NSString stringWithFormat:@"Lorem ipsum dolar sit amet."]); // Get string from somewhere CFLocaleRef locale = CFLocaleCopyCurrent(); CFStringTokenizerRef tokenizer = CFStringTokenizerCreate( kCFAllocatorDefault , string1 , CFRangeMake(0, CFStringGetLength(string1)) , kCFStringTokenizerUnitWord , locale); CFStringTokenizerTokenType tokenType = kCFStringTokenizerTokenNone; unsigned tokensFound = 0; while(kCFStringTokenizerTokenNone != (tokenType = CFStringTokenizerAdvanceToNextToken(tokenizer))) { CFRange tokenRange = CFStringTokenizerGetCurrentTokenRange(tokenizer); CFStringRef tokenValue = CFStringCreateWithSubstring( kCFAllocatorDefault , string1 , tokenRange); // Do something with the token NSLog(@"tokenValue:%@",tokenValue); NSLog(@"tokenRange:%ld,%ld",tokenRange.location,tokenRange.length); CFShow(tokenValue); CFRelease(tokenValue); ++tokensFound; } // Clean up CFRelease(tokenizer); CFRelease(locale);
打印日志:
2015-11-02 17:22:07.276 AFNetWorkingDemo[8620:300513] string:Lorem ipsum dolar sit amet.2015-11-02 17:22:07.276 AFNetWorkingDemo[8620:300513] sss:Loremipsumdolarsitamet.2015-11-02 17:22:07.277 AFNetWorkingDemo[8620:300513] tokenValue:Lorem2015-11-02 17:22:07.277 AFNetWorkingDemo[8620:300513] tokenRange:0,5Lorem2015-11-02 17:22:07.277 AFNetWorkingDemo[8620:300513] tokenValue:ipsum2015-11-02 17:22:07.277 AFNetWorkingDemo[8620:300513] tokenRange:9,5ipsum2015-11-02 17:22:07.277 AFNetWorkingDemo[8620:300513] tokenValue:dolar2015-11-02 17:22:07.277 AFNetWorkingDemo[8620:300513] tokenRange:15,5dolar2015-11-02 17:22:07.277 AFNetWorkingDemo[8620:300513] tokenValue:sit2015-11-02 17:22:07.277 AFNetWorkingDemo[8620:300513] tokenRange:23,3sit2015-11-02 17:22:07.278 AFNetWorkingDemo[8620:300513] tokenValue:amet2015-11-02 17:22:07.278 AFNetWorkingDemo[8620:300513] tokenRange:28,4amet
方法3:
NSString *string = @"Lorem ipsum dolar sit amet."; string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; NSArray *components = [string componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; NSLog(@"%@",components); components = [components filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self <> ''"]]; NSLog(@"%@",components); string = [components componentsJoinedByString:@" "]; NSLog(@"string:%@",string);
2015-11-02 17:22:07.275 AFNetWorkingDemo[8620:300513] ( Lorem, "", "", "", ipsum, dolar, "", "", sit, "", "amet.")2015-11-02 17:22:07.275 AFNetWorkingDemo[8620:300513] ( Lorem, ipsum, dolar, sit, "amet.")2015-11-02 17:22:07.276 AFNetWorkingDemo[8620:300513] string:Lorem ipsum dolar sit amet.
0 0
- NSString中提取单词 enumerateSubstringsInRange NSCharacterSet CFStringTokenizerRef
- NSCharacterset 和NSString
- NSString 中提取URL
- NSCharacterSet 去除NSString中的空格
- 从NSString中提取数字 NSScanner
- 从NSString中提取数字 NSScanner
- NSString 中提取url 并打开
- NSCharacterSet
- NSCharacterSet
- NSCharacterSet
- 从文本中提取所有的单词
- poj 1598 句子中提取单词
- 提取单词
- ios,object-c,iphone, NSCharacterSet 去除NSString中的空格
- NSString新用法 字符串_过滤处理NSCharacterSet 与invertedSet
- NSString新用法 字符串_过滤处理NSCharacterSet 与invertedSet
- iOS中NSCharacterSet的使用详解
- set应用:提取文本中所有不同的单词
- qtcreator拖拽多个按键到qscrollarea滚动实现
- linux 下ab压力测试
- 自定义控件declare-styleable的使用
- android menu 开发
- Android进阶篇之引导页系列之强大的SurfaceView实现动画引导页(2)
- NSString中提取单词 enumerateSubstringsInRange NSCharacterSet CFStringTokenizerRef
- 第八周;顺序串
- 简单的使用jsoup爬取图片
- C# 垃圾回收的基础
- android 支持蓝牙4.0的手机型号
- 第十周--项目3用二叉树遍历思想解决问题(5)
- 第七周 停车场模拟
- Excel公式、函数与图表应用大全——互动出版网
- 第十周项目2【二叉树遍历的递归算法】