zoukankan      html  css  js  c++  java
  • iOS 字符串截取、替换、修饰

    1 /* To avoid breaking up character sequences such as Emoji, you can do:
    2     [str substringFromIndex:[str rangeOfComposedCharacterSequenceAtIndex:index].location]
    3     [str substringToIndex:NSMaxRange([str rangeOfComposedCharacterSequenceAtIndex:index])]
    4     [str substringWithRange:[str rangeOfComposedCharacterSequencesForRange:range]
    5 */
    6 - (NSString *)substringFromIndex:(NSUInteger)from;
    7 - (NSString *)substringToIndex:(NSUInteger)to;
    8 - (NSString *)substringWithRange:(NSRange)range;                // Use with rangeOfComposedCharacterSequencesForRange: to avoid breaking up character sequences

    1、通过下标获取字符串

    1 NSString * str = @"12345abcde";
    2 NSString *logStr = [str substringFromIndex:6]; //从字符串下标为 6 的开始,截止字符串末尾
    1 NSString * str = @"12345abcde";
    2 NSString *logStr = [str substringToIndex:3]; //从字符串开始,截止字符串下标为 3 
     1 /**
     2 typedef struct _NSRange {
     3     NSUInteger location;
     4     NSUInteger length;
     5 } NSRange;
     6 
     7 typedef NSRange *NSRangePointer;
     8 
     9 NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
    10     NSRange r;
    11     r.location = loc;
    12     r.length = len;
    13     return r;
    14 }
    15 */
    16 
    17 NSString * str = @"12345abcde";
    18 NSString *logStr = [str substringWithRange:NSMakeRange(2, 4)]; //从下标为2开始,截取长度为4的字符串

    2、匹配查找字符串

    1  NSString * str = @"12345abcde";
    2  NSRange *logRange = [str rangeOfString:@"ab"]; //返回匹配到字符串的起始下标及长度

    3、分割字符串

    1 NSString * str = @"12345abcde";
    2 NSArray *logArr = [str componentsSeparatedByString:@"a"]; //以a为分隔符,返回分割后的字符串数组
    3 //数组元素拼接为字符串
    4 NSString *toStr = [logArr componentsJoinedByString:@","];
    5 //toStr  12345,bcde

     4、字符串替换

    1 NSString *str = @"18888888888";
    2 NSString *logString = [str stringByReplacingCharactersInRange:NSMakeRange(3, 4) withString:@"****"]; //隐藏手机号中间四位数
    3 NSLog(@"%@",logString);//输出结果为188****8888
    4 NSString *content = @"1&2&3&4&5&6";
    5 NSString *replaceStr = [content stringByReplacingOccurrencesOfString:@"&" withString:@","];//用 , 替换 &
    6 DebugLog(@"结果:%@",replaceStr);//输出结果 1,2,3,4,5,6

    5、字符串大小写转换

    /**
    /* The following three return the canonical (non-localized) mappings. They are suitable for programming operations that require stable results not depending on the user's locale preference.  For locale-aware case mapping for strings presented to users, use the "localized" methods below.
    */
    @property (readonly, copy) NSString *uppercaseString;
    @property (readonly, copy) NSString *lowercaseString;
    @property (readonly, copy) NSString *capitalizedString;
    */
    NSString *str1 = @"abcdef123";
    NSString *str2 = @"QWER456";
    //字符串的英文字符由小写转换成大写
    NSString *bigStr = [str1 uppercaseString];
    NSLog(@"%@",bigStr); //输出结果为    ABCDEF123
    //字符串的英文字符由大写转换为小写
    NSString *smallStr = [str2 lowercaseString];
    NSLog(@"%@",smallStr);//输出结果为  qwer456
    //字符串的首字母改为大写
    NSString *FirstletterbiggerStr = [str1 capitalizedString];
    NSLog(@"%@",FirstletterbiggerStr);//输出结果为Abcdef123

    6、字符串部分上色、修改样式

    1 NSString *Str = @"我自愿加入原创者联盟";
    2 NSMutableAttributedString *MutableStr = [[NSMutableAttributedString alloc] initWithString:Str];
    3 [MutableStr addAttribute:NSForegroundColorAttributeName value:[UIColor grayColor] range:NSMakeRange(0, 5)];
    4 //同样如果是改变字符串中某段字体的大小可以这样写:
    5 [MutableStr addAttribute:NSFontAttributeName value:[UIFont SystemFontOfSize:28] range:NSMakeRange(5, 5)];
  • 相关阅读:
    【刷题】LOJ 6009 「网络流 24 题」软件补丁
    lab 项目
    js内的时间戳指的是当前时间到1970年1月1日00:00:00 UTC对应的毫秒数,和 unix时间戳是对应的秒数,差了1000倍
    js 原生: 身份证脱敏、唯一随机字符串uuid、对于高 index 元素的隐藏与显示
    diy 滚动条 样式 ---- 核心代码
    PC_后台管理系统
    三端兼容项目
    阿里小程序
    到位App_jQuery_art-template
    一步一步 copy163: 网易严选 ---- vue-cli
  • 原文地址:https://www.cnblogs.com/zxs-19920314/p/12788023.html
Copyright © 2011-2022 走看看