iOS 自动检测数字

  • 很多需求会出现如果某段字符串里有数字的话就变色,最重要的是字符串还是随机的,这就坑了!
  • 下面就是针对这个问题的解决方案:
- (NSMutableAttributedString*)getString{NSString*detailStr = @"今日总拍品1200辆,您的心愿车56辆,赶紧去看看";
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:detailStr];
//找到数字在字符串中得位置
[[self findNumFromStr:detailStr] enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
    
    NSRange range = [detailStr rangeOfString:obj];
    if (range.location != NSNotFound)
    {
        NSLog(@"found at location = %lu, length = %lu",(unsigned long)range.location,(unsigned long)range.length);
        [attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(range.location, range.length)];
        
    }
    else
    {
        NSLog(@"Not Found");
    }
}];
  return  attributedString;
}
- (NSMutableArray*)findNumFromStr:(NSString*)originalString{
    NSMutableArray*numberArray = [NSMutableArray array];
    NSString*tempStr;
    NSScanner*scanner = [NSScanner  scannerWithString:originalString];
NSCharacterSet*numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
while (![scanner  isAtEnd]) {
    [scanner  scanUpToCharactersFromSet:numbers intoString:NULL];
    [scanner  scanCharactersFromSet:numbers intoString:&tempStr];
    if (tempStr && tempStr.length > 0) {
        [numberArray  addObject:tempStr];
    }
    tempStr = @"";
}
return numberArray;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容