1. NString
NSString是一個Unicode編碼,占用16位字符的字符序列。
它的是一種引用數(shù)據(jù)類型,當我們創(chuàng)建一個字符串@"ABC"時,則不會再創(chuàng)建相同@"ABC"的字符串,只會引用現(xiàn)存在的@"ABC"的內(nèi)存地址。也就是說相同的字符串在其內(nèi)存中只會存在一個,不會重復創(chuàng)建,其它都會共用這一個。
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
- NSMutableString
NSMutableString 是NSString的子類,是一種可變化長度的字符串。它的每一次變化返回的都是一個新的字符串,也就是每次變化都會開辟一個新內(nèi)存存放,然后再將地址返回出去。
在初始化后,會分配一個緩存容量capacity,其長度為實際的字符容量。當字符串增長時,分配的緩存容量是capacity的2倍。
建議:估計好capacity,預先分配好一定的容量,避免以后capacity 的增長,導致重新分配空間,復制舊數(shù)據(jù)到新的內(nèi)存空間,釋放舊內(nèi)存等底層操作。
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"];