iOS – NSRange与字符串截取

NSRange

    typedef struct _NSRange {
        NSUInteger location;
        NSUInteger length;
    } NSRange;
  • NSRange是Foundation框架中比较常用的结构体
  • 用来表示事物的一个范围
  • 通常是字符串里的字符范围或者数组里的元素范围。
  • 其中,NSRange有2个成员
    • NSUInteger location : 表示该范围的起始位置
    • NSUInteger length : 表示该范围内的长度

NSRange的创建

  1. 通过结构体变量访问成员
    NSRange range;
    //通过结构体变量访问成员
    range.location = 3;
    range.length = 2;
    
  2. 结构体变量整体赋值
    NSRange range;
    //结构体变量整体赋值
    range = (NSRange){5,3};
    NSRange r2 = {4,5};  //最简单的
    NSRange r3 = {.location = 3,.length = 5};
    
  3. NSMakeRange函数(OC中建议使用这种)
    NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
    NSRange r;
    r.location = loc;
    r.length = len;
    return r;
    }
    
    • NSMakeRange函数的作用给 NSRange结构体变量赋值
    //NSMakeRange函数的作用给 NSRange结构体变量赋值
    NSRange r4 = NSMakeRange(3, 3);
    NSString *str = NSStringFromRange(r4);//将一个结构体转化成字符串
    

字符串的截取

  • 从指定位置from开始(包含起始位置)到尾部
 - (NSString *)substringFromIndex:(NSUInteger)from;
  • 从字符串的开头一直截取到指定的位置to,不包含结束位置
- (NSString *)substringToIndex:(NSUInteger)to;
  • 按照所给出的NSRange从字符串中截取子串
 - (NSString *)substringWithRange:(NSRange)range;
  • 示例
//抽取指定范围的字符串
    NSString *string1 = @"0123456789";
    NSRange range1 = NSMakeRange(0, 4);//NSMakeRange这个函数的作用是从第0位开始计算,长度为4
    NSLog(@"从第0个字符开始,长度为4的字符串是:%@",[string1 substringWithRange:range1]);
    NSLog(@"抽取从头开始到第4个字符:%@",[string1 substringToIndex:4]);
    NSLog(@"抽取从第6个字符开始到末尾:%@",[string1 substringFromIndex:6]);

参考

NSRange 和 NSString 详解

 

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!
技术狗 » iOS – NSRange与字符串截取