4.Foundation框架
4.1 字符串类
4.1.1 不可变字符串NSString
在Foundation框架中,提供了一个名为NSString的类,用于处理字符串对象。
1. 创建字符串
通常可以使用以下几种方式来创建一个字符串对象:
//创建字符串的简单方法,使用@"",把字符串放在引号内。
NSString *str = @"www.baidu.com";
//使用stringWithFormat方法
+(instancetype)stringWithFormat:(NSString *)format,...;
//示例
NSString *str = [NSString stringWithFormat:@"www.baidu.com"];
//使用stringWithUTF8String方法,注意传入的不是字符串对象,因此不需要@
//示例
NSString *str = [NSString stringWithUTF8String:"你好"];
//使用initWithFormat方法
//示例
NSString *str = [[NSString alloc] initWithFormat:@"www.baidu.com"];
//使用initWithUTF8String方法
NSString *str = [[NSString alloc] initWithUTF8String:"www.baidu.com"];
2.字符串比较
//判断字符串是否相同,使用isEqualToString方法,返回值是BOOL类型
[str1 isEqualToString:str2];
//判断字符串中是否包含某个字符串,使用containsString方法
[str1 containString:@""];
//使用hasPrefix与hasSuffix方法,判断字符串开头与结尾。
[str1 hasSuffix:@""];
[str2 hasPrefix:@""];
3.字符串的拼接与截取
//从第四位开始截取,返回值是不包含第四位
NSString *subString = [str substringFormIndex:4];
//截止到第三位,结果包含第三位
NSString *subString = [str substringTomIndex:3];
//截取某个范围内的,需要传入NSRange类型的参数,从第四位开始,截取五位
NSRang rang = NSMakeRange(4, 5);
NSString *subString = [str substringWithRange:range];
补充
获取字符串长度,采用length属性,即str.length即可。
4.1.2 可变字符串NSMutableString
NSMutableString是继承自NSString类的,所以NSString中定义的所有方法,他都可以使用。与NSString相比,NSMutableString类的对象在内存中存储的空间是可以变化的,因此,存储的字符串长度和内容都可以改变。
1.NSMutableString的初始化
//stringWithCapacity:方法,需要指定初始化时预留的可供存储的字符串最大长度
NSMutableString *myStr = [NSMutableString stringWithCapacity:100];
//initWithCapacity:方法,需要指定初始化时预留的可供存储的字符串最大长度
NSMutableString *myStr = [[NSMutableString alloc] initWithCapacity:100];
//stringWithString:方法,传入一个初始化字符串
NSMutableString *myStr = [NSMutableString stringWithString:@"www.baidu.com"];
注意:可变字符串不能使用@" “进行赋值,因为使用@” "创建的字符串是一个常量字符串
2.NSMutableString字符串的修改
//赋值操作
[myStr setString:@"www.baidu.com"];
//拼接操作
[myStr appendString:@"拼接"];
//在指定位置插入字符串,在0处位置插入
[myStr insertString:@"插入" atIndex:0];
3.NSMutableString字符串的替换与删除
//从第四处替换5个字符
NSRange range = NSMakeRange(4, 5);
[myStr replaceCharactersInRange:range withString:@"avcsd"];
//删除
[myStr deleteCharactersInRange:range];
4. 连接两个字符串对象
使用stringByAppendingString方法,可以连接两个NSMutableString类型的字符串对象,返回一个NSString类型的字符串。
NSString *str = [str1 stringByAppendingString:str2];
4.2 数组类
4.2.1 不可变数组NSArray
Object-C的数组区别于C++、Java的数组在于,NSArray保存的对象可以使不同类型的对象
,但是缺点是只能保存对象,int、char、double等基本数据类型不能直接保存,需要转化成Object-C的对象以后才能加入数组。
1. 数组的创建
//1、使用@[]方式
NSArray *array1 = @[@123, @"123"];
//2、使用arrayWithObjects方法,这是类方法,在数组结尾需要用nil来表示数组的结束
NSArray *array2 = [NSArray arrayWithObject:@"123", @"456", nil];
//3、使用initWithObjects方法,这是一个实例方法
NSArray *array3 = [[NSArray alloc] initWithObjects:@"123", @"456", nil];
2. 数组的复制