一、NSString
1.1 NSString是不可变字符串,即字符串的内容在内存中是不可变的。针对此字符串的操作(如拼接,删除等),都是拷贝字符串到新的字符串中进行操作,并返回新字符串。
1.2 字符串的创建
NSString *s1 = @"jack";
//NSString *s2 = [[NSString alloc] initWithString:@"jack"]; //比较麻烦,不常用
NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d",10]; // 格式化字符串
1.3 C字符串与OC字符串之间的转换
1> C字符串——>OC字符串
NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"];
2> OC字符串——>C字符串
const char *cs = [s4 UTFString];
1.4 字符串的中文编码:NSUTFStringEncoding
NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];
1.5 URL:资源路径
1> URL的格式:协议头://路径
如文件资源路径:file://
ftp资源路径:ftp://
网络资源路径:http://weibo.cm/a.png
http://www.baidu.com
1.6 NSURL
NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple/Desktop/1.txt"];// 将字符串转换为URL,注意file:后面是三条斜线。前两条是协议头的格式,最后一条斜线表示根目录。
NSSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/1.txt"]; // fileURLWithPath表示文件资源路径
1.7 一般都会有一个类方法跟对象方法配对
[NSURL URLWithString:<#(NSString *)#>];
[NSString stringWithFormat:@""];
[NSString stringWithContentsOfFile:<#(NSString *)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>];
1.8 字符串的导出
1> [@"Jack\nJack" writeToFile:@"/Users/apple/Desktop/my.txt"atomically:YES encoding:NSUTF8StringEncoding error:nil];//writeToFile表示将字符串写到文件中。atomically为YES表示文件操作为原子性,当写入出错时,不创建文件。如果为No,即写入出错时,文件也会被创建。一般设置为YES。
2> NSString *str = "4546565";//创建字符串
NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/my.txt"];//创建文件资源路径
[str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];// 将字符串写入到文件资源路径中
1.9 字符串的拼接
NSString *s2 = [NSString stringWithFormat:@"age is 10"];// 创建字符串对象
NSString *s3 = [s2 stringByAppendingString:@" 11 12"]; // 将参数中的内容拼接到字符串中,并返回新的字符串对象
1.10 删除字符串两边的空隔
1> NSCharacterSet *whiteSpace = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSString *str2 = [[NSString alloc] initWithString:[@" abdck dkd a " stringByTrimmingCharactersInSet:whiteSpace]];
2> NSString *nickNameStr = [@" kdkdk kd " stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSLog(@"%@",nickNameStr);
二、NSMutableString
2.1 NSMutableString是可变字符串,即对它的操作都是在字符串进行,没有返回值。它是NSString的子类,所以NSString拥有的方法NSMutableString同样拥有。
2.2 NSMutableString的创建
NSMutableString *s1 = [NSMutableString stringWithFormat:@"my age is %d",10];
2.3 拼接内容到s1后面
[s1 appendString:@"11 12"]; //将内容拼接到字符串后面,没有返回值
2.4 获取内容字符串的位置并删除
NSRange range = [s1 rangeOfString:@"is"]; // 获取is的范围
[s1 deleteCharatersInRange:range];// 删除字符串范围内的内容
2.5 截取字符串
// 声明并初始化一个身份证号
NSString *carNo = @"420156198904043231";
// 获取身份证号前4位
NSRange range = NSMakeRange(0, 4);
NSString *address = [carNo substringWithRange:range];