美文网首页iOS 技术分享
iOS - 获取字符中所有括号内字符,并特殊处理

iOS - 获取字符中所有括号内字符,并特殊处理

作者: Joh蜗牛 | 来源:发表于2019-08-29 09:35 被阅读0次
    1.遍历字符串,获取所有括号中字符串,返回数组:
    传入:NSString *str = @"【管理员】请您审核【山西建邦集团有限公司】的商品";
    返回值:NSArray  *ary = @[【管理员】,【山西建邦集团有限公司】];
    //找出字符串中用括号括住的字符串们
    - (NSArray *)handleStringWithString:(NSString *)str{
    
        NSMutableArray *chooseAry = [@[] mutableCopy];
    
        NSMutableString * muStr = [NSMutableString stringWithString:str];
    
        while ([muStr containsString:@"【"]) {
            NSString *chooseStr = @"";
    
            NSRange range = [muStr rangeOfString:@"【"];
            NSRange range1 = [muStr rangeOfString:@"】"];
    
    
            if (range.location != NSNotFound) {
                NSInteger loc = range.location;
                NSInteger len = range1.location - range.location;
    
                chooseStr = [muStr substringWithRange:NSMakeRange(loc, len + 1)];
                [chooseAry addObject:chooseStr];
    
                [muStr deleteCharactersInRange:NSMakeRange(loc, len + 1)];
            }
        }
    
    
        return chooseAry;
    
    }
    
    2.将处理过的字符串赋值给Label:
    self.contentLabel.attributedText = [self setTextColor:contentStr chooseAry:[self handleStringWithString:contentStr] color:kColorHex(0x333333) fontSize:15];
    
    
    // 处理字符串
    - (NSMutableAttributedString *)setTextColor:(NSString *)text chooseAry:(NSArray *)chooseAry color:(UIColor *)color fontSize:(CGFloat)fontSize{
    
        NSMutableAttributedString *contentStr = [[NSMutableAttributedString alloc]initWithString:text];
        for (NSString *str in chooseAry) {
            //找出特定字符在整个字符串中的位置
            NSRange redRange = NSMakeRange([[contentStr string] rangeOfString:str].location, [[contentStr string] rangeOfString:str].length);
            //修改特定字符的颜色
            [contentStr addAttribute:NSForegroundColorAttributeName value:color range:redRange];
            if (fontSize > 0) {
                //修改特定字符的字体大小
                [contentStr addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:fontSize] range:redRange];
            }
        }
    
    
        return contentStr;
    
    }
    
    

    相关文章

      网友评论

        本文标题:iOS - 获取字符中所有括号内字符,并特殊处理

        本文链接:https://www.haomeiwen.com/subject/ngybectx.html