项目需求要把字符中的数字改变颜色,于是上网找了些资料,下面是我写小例子
NSString *number = @"我是23测试456";
NSCharacterSet *numberset = [[NSCharacterSet decimalDigitCharacterSet]invertedSet];
int n = [[number stringByTrimmingCharactersInSet:numberset]intValue];
NSLog(@"%d",n);
NSRange loc =[number rangeOfString:@(n).stringValue];
//输出位置和长度
NSLog(@"%lu:%lu",(unsigned long)loc.length,(unsigned long)loc.location);
NSScanner *scanner = [NSScanner scannerWithString:number];
[scanner scanUpToCharactersFromSet:[NSCharacterSet decimalDigitCharacterSet] intoString:nil];
int num;
[scanner scanInt:&num];
NSLog(@"%d",num);
这两种方法都能分离出数字,但缺点是只能分离出23,中间被测试分开的456分离不出来。最后看到这个http://blog.youkuaiyun.com/msyqmsyq/article/details/50788003可以分离出来所有的数字,虽然不是太简便但是,解决了我的需求。