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函数。
objective-C学习笔记(七) 字符串处理的更多相关文章
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- Typescript 学习笔记七:泛型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Linux学习笔记(七) 查询系统
1.查看命令 (1)man 可以使用 man 命令名称 命令查看某个命令的详细用法,其显示的内容如下: NAME:命令名称 SYNOPSIS:语法 DESCRIPTION:说明 OPTIONS:选项 ...
- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...
- Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...
- python3.4学习笔记(七) 学习网站博客推荐
python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...
- Go语言学习笔记七: 函数
Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...
- iOS 学习笔记七 【博爱手把手教你使用2016年gitHub Mac客户端】
iOS 学习笔记七 [博爱手把手教你使用gitHub客户端] 第一步:首先下载git客户端 链接:https://desktop.github.com 第二步:fork 大神的代码[这里以我的代码为例 ...
- 【opencv学习笔记七】访问图像中的像素与图像亮度对比度调整
今天我们来看一下如何访问图像的像素,以及如何改变图像的亮度与对比度. 在之前我们先来看一下图像矩阵数据的排列方式.我们以一个简单的矩阵来说明: 对单通道图像排列如下: 对于双通道图像排列如下: 那么对 ...
- 【学习笔记】字符串—马拉车(Manacher)
[学习笔记]字符串-马拉车(Manacher) 一:[前言] 马拉车用于求解连续回文子串问题,效率极高. 其核心思想与 \(kmp\) 类似:继承. --引自 \(yyx\) 学姐 二:[算法原理] ...
随机推荐
- Oracle EBS-SQL (INV-1):库存货位列表.sql
select inventory_location_id, organization_id, description, subinventory_code, segment1 inventory_lo ...
- delphi 7中使用idhttp抓取网页 解决假死现象
在delphi 7中使用idhttp抓取网页,造成窗口无反应的假死状态.通过搜索获得两种方法. 1.写在线程中,但是调用比较麻烦 2.使用delphi 提供的idantifreeze(必须安装indy ...
- poj2350
#include <stdio.h> #include <stdlib.h> int main() { ],tim,i; scanf("%d",&n ...
- libVirt APIs uris (storage,hypervisors)drivers terminologies,glossary xml VMI format
- Qt编写端口扫描工具
Qt提供了QTcpSocket类,可以方便地建立TCP连接.利用这一功能,Maxiee编写了一个简单地端口扫描工具. 软件的功能就是,扫描某一网段的固定端口,如80端口,若目的地址开放了这一端口,那么 ...
- Java中Lambda表达式的使用
简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要乱用,因 ...
- 创建自己的yum软件源(以Cloudera Hadoop的安装为例)
.下载Cloudera Manager安装文件 Cloudera Manager的可以从如下网址获得: http://archive.cloudera.com/cm4/installer/ 这里选择C ...
- 在MAC下使用github
一 安装git 这个咱们就不说了,一般安装xcode都会自带git 如果不知道有没有下载git, 在终端运行 $which git 会打印出git的安装路径 /usr/local/bin/gi ...
- Asp.Net MVC 控制器
原文链接:http://www.asp.net/learn/mvc/ 这篇教程探索了ASP.NET MVC控制器(controller).控制器动作(controller action)和动作结果(a ...
- tengine install
./configure --prefix=/home/admin/local/tengine --with-http_stub_status_module --with-http_ssl_module ...