小Tip:从字符串中提取数字
2016-03-10 05:40
399 查看
语音识别的时候问用户想看哪个商品的信息,要从用户所说中提取出数字。
- 方法如下:(提取第一个遇到的数字)
NSString* val = @"product number 15, OK?";
NSString* numberString ;
NSScanner *scanner = [NSScanner scannerWithString:val];
NSCharacterSet *numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
// Throw away characters before the first number.
[scanner scanUpToCharactersFromSet:numbers intoString:NULL];
// Collect numbers.
[scanner scanCharactersFromSet:numbers intoString:&numberString];
NSInteger number = numberString.integerValue;
NSLog(@"%ld",(long)number);
//结果:15
如果不存在数字则numberString为空,转换的number是0。
- 还可以在numbers集合中加上小数点以识别实数。
NSCharacterSet *numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789."];
- 另有提取出现的所有数字方法如下:
NSString *yourStr =
@"1blabla blaba95 23blabla808bla";
NSCharacterSet *cs = [[NSCharacterSet
characterSetWithCharactersInString:@"0123456789"]
invertedSet];
NSString *resultStr = [[yourStr
componentsSeparatedByCharactersInSet:cs]
componentsJoinedByString:@" "];
NSLog(@"%@",resultStr);
//结果:1 95 23 808
- 方法如下:(提取第一个遇到的数字)
NSString* val = @"product number 15, OK?";
NSString* numberString ;
NSScanner *scanner = [NSScanner scannerWithString:val];
NSCharacterSet *numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
// Throw away characters before the first number.
[scanner scanUpToCharactersFromSet:numbers intoString:NULL];
// Collect numbers.
[scanner scanCharactersFromSet:numbers intoString:&numberString];
NSInteger number = numberString.integerValue;
NSLog(@"%ld",(long)number);
//结果:15
如果不存在数字则numberString为空,转换的number是0。
- 还可以在numbers集合中加上小数点以识别实数。
NSCharacterSet *numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789."];
- 另有提取出现的所有数字方法如下:
NSString *yourStr =
@"1blabla blaba95 23blabla808bla";
NSCharacterSet *cs = [[NSCharacterSet
characterSetWithCharactersInString:@"0123456789"]
invertedSet];
NSString *resultStr = [[yourStr
componentsSeparatedByCharactersInSet:cs]
componentsJoinedByString:@" "];
NSLog(@"%@",resultStr);
//结果:1 95 23 808
相关文章推荐
- 9.11 编程练习
- 作业1
- NavigationView
- Linux awk
- C 程序.data .text .bbs 概述
- Linux sed命令
- 关于强行装逼之代码风骚
- 基数排序,,,感想
- 快速排序 插入排序
- JavaScript内存管理机制
- 移植Qt-4.8.5出现undefined reference to '__sync_sub_and_fetch_4'解决方法--转载
- [RxJS] Reactive Programming - Using cached network data with RxJS -- withLatestFrom()
- c语言,顺序空间游标链表的实现
- 备忘录模式
- 集合元素是否包含的算法
- 【C#进阶系列】08 方法
- 【C#进阶系列】07 方法
- cocos2dx TabelView 表格视图
- 整理下2015-2016年在搭乘交通工具所读过的一些书
- 阿里云使用笔记-MySQL远程连接-centos7