您的位置:首页 > 其它

字符串的定义、替换、比较、截取

2016-02-25 21:07 295 查看
一、字符串
1、C语言中,字符串是由char(ASCII码)字符组成。
2、OC中,字符串是由unichar(Unicode)字符组成。
一个unicode字符类型在内存中占两个字节。
3、NSString,不可变字符串,即:创建以后,内容和⻓度不能更改
4、NSMutableString,可变字符串,即:创建以后,内容还可以修改
5、创建⼀个新的字符串,可以使⽤实例⽅法和便利构造器。
不可变字符串的修改操作,本质就是得到⼀个新的字符串。 不可变字符串的修改⽅法以string开头,有返回值。 可变字符串的修改⽅法没有返回值,修改原字符串。
通过initWithString:来初始化对象,如果用常量区字符串来初始化,直接将常量区地址存储到指针变量中;如果 用其他字符串来初始化,先将字符串内容拷贝到堆区,再将堆区地址返回。
用initWithFormat:来初始化对象,将常量区内容复制到堆区,再将堆区地址返回
字符串长度方法:计算的是所有Unicode字符的个数
1、 从字符串的第几个位置开始,一直到字符串的结尾
NSString *substring = [string substringFromIndex:3];
2、
定义一个range结构体变量,规定起始位值和长度
NSRange range = NSMakeRange(2, 4);

根据范围从字符串中截取子字符串
NSString *sub2 = [string substringWithRange:range];
3、字符串替换的方法

NSString *str = @"hello boy";
NSString *newStr = [str stringByReplacingOccurrencesOfString:@"hello" withString:@"hi"]
4、
判断两个字符串是否完全相等
BOOL equal = [@"123" isEqualToString:@"123"]
5、
字符串比较
NSLog(@"compare = %ld",[@"abc" compare:@"ABC" options:1])
二、数组-有序集合
iOS中存放数据的容器类都称为集合(collection)。 数组是有序集合,只能存放对象 数组有下标(index)的概念,靠index来索引元素,下标从0开始。 数组分不可变数组(NSArray)和可变数组(NSMutableArray)。数组只能存放对象。
需要存储整型或者结构体的时候,如何做呢?
存储:把整型或者结构体 转换为对象,将对象存⼊数组
读取:先取出对象,再将对象还原为整型或者结构体。
三、值对象
NSNumber 数值对象: 完成数值标量和对象类型的互转 基本类型(int,float等)转换为NSNumber NSNumber转换为基本类型(int,float等)
NSValue 完成标量和对象类型的互转 结构体(NSRange等)、指针等转换为NSValue NSValue转换为结构体(NSRange等)、指针等
四、总结
1、可变对象通常是不可变对象的子类,包含父类的所有方法,并且 具有增删改的功能。
2、可变对象的增删改都是对自身的操作;不可改变对象的增删改都会生成新的对象,原对象不变。
3、数组只能存储对象类型的数据,有序,靠下标索引对象。
4、NSNumber、NSValue主要是为了完成标量和对象的互转,便于与 collection配合使⽤。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: