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

来源:互联网 发布:网络教育本科毕业条件 编辑:程序博客网 时间:2024/06/06 09:42
一、字符串
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配合使⽤。 
0 0
原创粉丝点击