GeekBand Objective-C 字符串NSString NSMutableString

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 NSMutableString)