objective-C学习笔记(七) 字符串处理

时间:2023-03-09 22:37:38
objective-C学习笔记(七) 字符串处理

字符串NSString

NSString 是一个Unicode编码,16位字符的字符序列。

NSString 是一个类,拷贝时需要注意。

初始化方法:字面量初始化、初始化器、工厂方法。

NSString 拥有恒定性,所有的操作无法更改本身,如有更改,都是返回新值的形式。

NSString共享机制,在字符串内容相同的时候,不同的字符串指针指向同一个地址。(字面常量初始化的情况)

NSMutableString 可变性String

NSMutableString是NSString的子类

NSMutableString不具有共享机制

NSMutableString并不是在原有内存上直接增长,而是重新分配一个更大或更小的缓存容量存放字符。

NSMutableString的缓存容量与增长

字符串初始化时,可以手动分配一个缓存容量capacity[NSMutableString stringWithCapacity:100]

当字符串增长时,如果实际需求大于capacity,capacity就会以二倍的方式指数增长:

分配新的堆内存 2*capacity

将原来堆内存上的内容拷贝到新内存

释放原来的堆内存。

最佳实践:估计号capacity,预先分配好一定容量,避免以后capacity的增长(增长的代价太大)

常用操作:

NSString:

访问字符串: 获取字符串字符、字符串长度、字面量、大小写转换。

查询字符串: 定位子串、获取子串、是否包含子串、查询字符集。

其他操作:比较字符串、替换字符串、分解字符串。

NSMutableString:

添加字符串、删除字符串、修改字符串

建议:去面试之前,可以整理归纳一下常用的这些字符串操作以及常用的各种OBJC函数。