美文网首页
GeekBand Objective-C 字符串NSString

GeekBand Objective-C 字符串NSString

作者: 东忙忙西茫茫 | 来源:发表于2016-05-22 14:09 被阅读0次

    1. NString

    NSString是一个Unicode编码,占用16位字符的字符序列。
    它的是一种引用数据类型,当我们创建一个字符串@"ABC"时,则不会再创建相同@"ABC"的字符串,只会引用现存在的@"ABC"的内存地址。也就是说相同的字符串在其内存中只会存在一个,不会重复创建,其它都会共用这一个。

    1.1 初始化赋值方式
    NSString* str1 = @"Hello world!";
    NSString* str2 = [[NSString alloc] initWithCString:"Hello world!" encoding:NSUTF8StringEncoding];
    NSString* str3 = [NSString stringWithCString:"Hello world!" encoding:NSUTF8StringEncoding];
    
    1.2 常用方法

    http://www.cnblogs.com/heyonggang/p/3452556.html

    1. NSMutableString
      NSMutableString 是NSString的子类,是一种可变化长度的字符串。它的每一次变化返回的都是一个新的字符串,也就是每次变化都会开辟一个新内存存放,然后再将地址返回出去。
      在初始化后,会分配一个缓存容量capacity,其长度为实际的字符容量。当字符串增长时,分配的缓存容量是capacity的2倍。

    建议:估计好capacity,预先分配好一定的容量,避免以后capacity 的增长,导致重新分配空间,复制旧数据到新的内存空间,释放旧内存等底层操作。

    2.1 常用方法

    添加、删除、修改、替换

    NSMutableString* mstr1 = [[NSMutableString alloc] initWithString:@"aaa"];
    [mstr1 appendString:@"bbb"];
    [mstr1 insertString:@"ccc" atIndex:3];
    [mstr1 deleteCharactersInRange:NSMakeRange(1, 2)];
    [mstr1 replaceCharactersInRange:NSMakeRange(1, 2) withString:@"pp"];
    

    相关文章

      网友评论

          本文标题:GeekBand Objective-C 字符串NSString

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