美文网首页
处理、获取两个字符串之间的字符串

处理、获取两个字符串之间的字符串

作者: biyuhuaping | 来源:发表于2023-04-05 17:45 被阅读0次

处理、获取两个字符串之间的字符串:

//字符串匹配
- (NSArray *)stringMatcher:(NSString *)matchStr string:(NSString *)str{
    //在str中搜索matchStr并返回matchStr下标
    NSInteger matchStrLehgth = matchStr.length;
    NSInteger strLength = str.length;
    NSMutableArray *indexArray = [[NSMutableArray alloc]init];
    for (int index = 0; index <= (strLength - matchStrLehgth); index ++) {
        NSRange range = {index,matchStr.length};
        if ([matchStr isEqualToString:[str substringWithRange:range]]) {
            [indexArray addObject:[NSString stringWithFormat:@"%d",index]];
        }
    }
    return [NSArray arrayWithArray:indexArray];
}

//处理所有两个字符串中间的子串
- (NSMutableAttributedString *)findSubString:(NSString *)string beginStr:(NSString *)beginStr endStr:(NSString *)endStr{
    NSMutableAttributedString *attributed = [[NSMutableAttributedString alloc] initWithString:string];
    NSDictionary *dic = @{NSFontAttributeName : [UIFont fontWithName:FontTypePingFangMe size:16]};
    
    NSArray<NSString *> *indexArray = [self stringMatcher:beginStr string:string];
    for (NSString *str in indexArray) {
        int index = [str intValue];
        NSString *str = [string substringFromIndex:index + beginStr.length];
        NSArray<NSString *> *endArray = [self stringMatcher:endStr string:str];
        if (endArray.count == 0) {
            return nil;
        }else{
            int endIndex = [endArray[0] intValue];
            NSRange range = {index + beginStr.length,(endIndex + index + beginStr.length) - (index + beginStr.length)};
            [attributed addAttributes:dic range:range];
        }
    }
    return attributed;
}

使用:

NSString *priceStr = @"拼团价¥888.88-¥999.99";
NSMutableAttributedString *attr = [self findSubString:priceStr beginStr:@"¥" endStr:@"."];
if (attr) {
    self.priceLabel.attributedText = attr;
}else{
    self.priceLabel.text = priceStr;
}

实现效果:

2个.png
无数个都可以.png

相关文章

  • String字符串的处理

    对String字符串的处理分成4类字符串长度的处理两个字符串之间的关系字符串的解析字符串的转换 1. 字符串长度的...

  • iOS | NSString截取字符串中相同字符之间的字符串

    项目中有需求截取字符串,字符串中有两个相同的字符,要获取的新字符串就在这两个相同字符串之间。 封装了一个简单的方法...

  • 最大字符串匹配

    计算两个字符串的最大字符串匹配,对极端以及错误情况不作处理 首先选定一个字符串作为目标字符串,获取这个目标字符串的...

  • Redis 字符串命令汇总

    创建字符串 获取字符串 删除字符串 检测字符串是否存在 数字递增 数字递减 批量处理字符串

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

    1.遍历字符串,获取所有括号中字符串,返回数组: 2.将处理过的字符串赋值给Label:

  • 字符串

    字符串的操作 “xxxx”“【】”“{}”...... 1. 字符串格式处理 2字符串与数组& json对象之间的...

  • 字符串string的使用

    1、定义可变字符串: 2、定义不可变字符串: 3、获取字符串的长度: 4、遍历字符串: 5、字符串拼接 两个字符串...

  • JavaScript处理日期时间

    JavaScipt 处理时间 基本的时间处理 获取当前时键戳 时间戳转换为字符串时间 字符串转换时间戳 推荐阅读:...

  • java中String类中常用的方法

    String 类提供了许多用来处理字符串的方法,例如,获取字符串长度、对字符串进行截取、将字符串转换为大写或小写、...

  • 常用js方法

    1、获取url参数 2、js截取两个字符串之间的内容 3、js截取某个字符串前面的内容 4、js截取某个字符串后面的内容

网友评论

      本文标题:处理、获取两个字符串之间的字符串

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