/* // 字符串创建方法(不可变的字符串)
//这是第一种创建方式(也是最简单的)
NSString *name1 = @"xiaoming"; // NSString也是一个类
//第二种创建方式(对于NSString,这种方式不常见)
NSString *name2 = [[NSString alloc]init];
//第三种(不常用)
NSString *name3 = [[NSString alloc]initWithString:name1];
// 第四种(很重要)
NSString *name4 = [[NSString alloc]initWithFormat:@"%@%@",@"lanou",@"niubi"];
//用类方法去创建字符串
NSString *name5 = [NSString stringWithFormat:@"%@%@",@"nihao",@"shuai"];
*/
字符串的操作方法-- NSString里面所有涉及到修改的地方本质上都是返回一个新的字符串
//
// //1,首字母大写
// NSString *name = @"gmxshigehaohaizi";
// //[name capitalizedString];
// name = [name capitalizedString];//字符串首字母大写
// NSLog(@"1题 %@",name);
//
// name = [name uppercaseString];//2,字符串字母全部大写
// NSLog(@"2题 %@",name);
//
// name = [name lowercaseString];//3,字符串字母全部小写
// NSLog(@"3题 %@",name);
//
// //4,获取name的字串,现在我要获取 shi
// // 类名 对象 方法 有返回值
// // 类名
// NSRange range = NSMakeRange(3,3); //NSMakeRange第一个参数是位置,第二个参数是长度
// NSString *sub = [name substringWithRange:range];
// NSLog(@"4题 %@",sub);
//
// //5, 获取字串--gxm 和 haizi
// NSString *sub_gxm = [name substringToIndex:3];//获取头部子串
// NSString *sub_haizi = [name substringFromIndex:11];//获取尾部子串
// NSLog(@"5题 %@ %@",sub_gxm,sub_haizi);
//
// //6,字符串拼接
// sub_gxm = [sub_gxm stringByAppendingString:sub_haizi];//相当于实现了把sub_haizi拼接到了sub_gxm
// NSLog(@"6题 %@",sub_gxm);
//
// //7,求字符串长度--length
// NSUInteger len = [name length];
// NSLog(@"7题 %lu",len);
//
// //8,字符串和基本类型的转化
// // 转化是有要求的:字符串的内容必须是数字和‘.’
// NSString *numberString = @"19";
// int number = [numberString intValue];
// NSLog(@"8题 %d",number);
// NSString *numberString1 = @"19.3";
// float number1 = [numberString1 floatValue];
// NSLog(@" %.3f",number1);
//
// //9,字符串的替换
// NSString *opeString = @"beijing150516";
// //把15替换为14.第一个参数为原来的字符串内容,第二个参数为也要修改后的字符串内容
// opeString = [opeString stringByReplacingOccurrencesOfString:@"15" withString:@"14"];
// NSLog(@"9题 %@",opeString);
//
// //10,(不可变)字符串的删除--利用字符串替换去删除 没有直接删除的方法
// opeString = [opeString stringByReplacingOccurrencesOfString:@"beijing" withString:@""];
// NSLog(@"10题 %@",opeString);
//
// //11,根据文件内容去创建字符串
// NSString *contentString = [[NSString alloc]initWithContentsOfFile:@"/Users/lanou3g/Desktop/qq.txt" encoding:NSUTF8StringEncoding error:nil];
// NSLog(@"11题 %@",contentString);
//
// //12,使用相对路径去创建字符串
// //找到控制面板(面板左侧的资源)
// NSString *path = [[NSBundle mainBundle] pathForResource:@"qq" ofType:@"TXT"];
// NSLog(@"12题 %@",path);
//
// NSString *contentString2 = [[NSString alloc]initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
// NSLog(@"12题 %@",contentString2);
//
//
第二个内容:NSMutableString(可变的字符串) @""叫语法糖
// NSMutableString *mutableString1 = [[NSMutableString alloc]initWithFormat:@"%@%@",@"nihao",@"shuaige"];
//
//
// NSLog(@"1 %@",mutableString1);
// //可变的字符串,对于他的修改,实质就是对于自身的修改
// //可变字符串的操作方法
//
// //1,拼接
// [mutableString1 appendString:@"woxihuanni"];
// NSLog(@"2 %@",mutableString1);
//
// //2,替换
// //第一种替换方式
// NSRange range = NSMakeRange(0, [mutableString1 length]);
//
// //第三个参数搜索的方式,第四个参数:搜索的范围
// [mutableString1 replaceOccurrencesOfString:@"shuaige" withString:@"meinv" options:NSCaseInsensitiveSearch range:range];
// NSLog(@"3 %@",mutableString1);
//
// //第二种替换方式
// //第一个参数,要替换的范围,第二个参数要替换为什么内容
// [mutableString1 replaceCharactersInRange:NSMakeRange(6, 5) withString:@"shuaige"];
// NSLog(@"4 %@",mutableString1);
//
//
//
第三个内容:数组(不可变的数组) NSArray
//
// //特点1:可以存放不同类型的数据
// //特点2,oc里面的数组,里面的数据必须是对象
// //特点3,oc数组可以直接参加运算
// //特点4,数组是有序的
// Person *person1 = [[Person alloc]initWithName:@"gxm"];
// Person *person2 = [[Person alloc]initWithName:@"lh"];
// //下面的创建方式是语法糖。。
// NSArray *array1 = @[person1,person2,@"小明"];
//
// //1,alloc init 去创建
// NSArray *array2 = [[NSArray alloc]initWithObjects:person1,person2, nil];
//
// //2,类方法去创建
// NSArray *array3 = [NSArray arrayWithObjects:person1,person2, nil];
//
// //3,根据数组去创建数组 根据arry2创建arry4
// NSArray *array4 = [[NSArray alloc]initWithArray:array2];
//
打印数组
// //第一种
// //NSLog(@"%@",array1);
// //第二种 c语言方式
// for (int i = 0; i < 3; i++) {
// NSLog(@"1 %@",array1[i]);
// }
// //for循环去遍历数组
// for (id object in array1) {
// NSLog(@"2 %@",object);
// }
// for (Person *object in array2) {
// NSLog(@" %@",object);
// }
//
操作数组的方法
//
// // 1,求数组里面元素的个数
// NSUInteger arrayCount = [array1 count];
// NSLog(@"1 array1的元素个数为:%lu",arrayCount);
//
// // 2,删除元素--(不可变数组没有删除元素的方法)
// // 3,添加元素
// array1 = [array1 arrayByAddingObject:@"刘辉"];
// NSLog(@"3 %@",array1);
//
// // 4,获取数组里面第一个元素
// // array1[0]
// //Person *tenmp = [array1 firstObject];
// // 5,获取最后一个元素
// //NSString *string = [array1 lastObject];
//
// //6,判断数组里面是否包含某个元素
// BOOL result = [array1 containsObject:person2];
// NSLog(@"6 %d",result); // %g 打印出有效位数
//
// //7,判断一个元素到底在哪个位置
// NSUInteger index = [array1 indexOfObject:person1];
// NSLog(@"7 %lu",index);
//第四个内容 NSMutableArray 可变的数组
// NSMutableArray *mutableArray = [[NSMutableArray alloc]init];
// Person *person1 = [[Person alloc]initWithName:@"gxm"]; // 把person1添加到数组里面
// Person *person2 = [[Person alloc]initWithName:@"小胖子"];
// Person *person3 = [[Person alloc]initWithName:@"小瘦子"];
// [mutableArray addObject:person1]; //添加进去
// [mutableArray addObject:person2];
// [mutableArray addObject:person3];
// //删除元素
// [mutableArray removeObject:person1];
// [mutableArray removeObjectAtIndex:0]; // 第一个元素删除
// NSLog(@"%@",mutableArray);
// //批量的删除元素
// NSArray *array = @[person2,person3];
// [mutableArray removeObjectsInArray:array];
// NSLog(@"%@",mutableArray);
// //全部删除
// [mutableArray removeAllObjects];
// NSLog(@"%@",mutableArray);
// //交换两个元素
// [mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:2];
// NSLog(@"%@",mutableArray);
//
//
// NSArray *array1 = @[person1];
// NSArray *array2 = @[person2];
// NSArray *array3 = @[person3];
// NSArray *array0 = @[array1,array2,array3];
// NSLog(@"%@",array0);
//这是第一种创建方式(也是最简单的)
NSString *name1 = @"xiaoming"; // NSString也是一个类
//第二种创建方式(对于NSString,这种方式不常见)
NSString *name2 = [[NSString alloc]init];
//第三种(不常用)
NSString *name3 = [[NSString alloc]initWithString:name1];
// 第四种(很重要)
NSString *name4 = [[NSString alloc]initWithFormat:@"%@%@",@"lanou",@"niubi"];
//用类方法去创建字符串
NSString *name5 = [NSString stringWithFormat:@"%@%@",@"nihao",@"shuai"];
*/
字符串的操作方法-- NSString里面所有涉及到修改的地方本质上都是返回一个新的字符串
//
// //1,首字母大写
// NSString *name = @"gmxshigehaohaizi";
// //[name capitalizedString];
// name = [name capitalizedString];//字符串首字母大写
// NSLog(@"1题 %@",name);
//
// name = [name uppercaseString];//2,字符串字母全部大写
// NSLog(@"2题 %@",name);
//
// name = [name lowercaseString];//3,字符串字母全部小写
// NSLog(@"3题 %@",name);
//
// //4,获取name的字串,现在我要获取 shi
// // 类名 对象 方法 有返回值
// // 类名
// NSRange range = NSMakeRange(3,3); //NSMakeRange第一个参数是位置,第二个参数是长度
// NSString *sub = [name substringWithRange:range];
// NSLog(@"4题 %@",sub);
//
// //5, 获取字串--gxm 和 haizi
// NSString *sub_gxm = [name substringToIndex:3];//获取头部子串
// NSString *sub_haizi = [name substringFromIndex:11];//获取尾部子串
// NSLog(@"5题 %@ %@",sub_gxm,sub_haizi);
//
// //6,字符串拼接
// sub_gxm = [sub_gxm stringByAppendingString:sub_haizi];//相当于实现了把sub_haizi拼接到了sub_gxm
// NSLog(@"6题 %@",sub_gxm);
//
// //7,求字符串长度--length
// NSUInteger len = [name length];
// NSLog(@"7题 %lu",len);
//
// //8,字符串和基本类型的转化
// // 转化是有要求的:字符串的内容必须是数字和‘.’
// NSString *numberString = @"19";
// int number = [numberString intValue];
// NSLog(@"8题 %d",number);
// NSString *numberString1 = @"19.3";
// float number1 = [numberString1 floatValue];
// NSLog(@" %.3f",number1);
//
// //9,字符串的替换
// NSString *opeString = @"beijing150516";
// //把15替换为14.第一个参数为原来的字符串内容,第二个参数为也要修改后的字符串内容
// opeString = [opeString stringByReplacingOccurrencesOfString:@"15" withString:@"14"];
// NSLog(@"9题 %@",opeString);
//
// //10,(不可变)字符串的删除--利用字符串替换去删除 没有直接删除的方法
// opeString = [opeString stringByReplacingOccurrencesOfString:@"beijing" withString:@""];
// NSLog(@"10题 %@",opeString);
//
// //11,根据文件内容去创建字符串
// NSString *contentString = [[NSString alloc]initWithContentsOfFile:@"/Users/lanou3g/Desktop/qq.txt" encoding:NSUTF8StringEncoding error:nil];
// NSLog(@"11题 %@",contentString);
//
// //12,使用相对路径去创建字符串
// //找到控制面板(面板左侧的资源)
// NSString *path = [[NSBundle mainBundle] pathForResource:@"qq" ofType:@"TXT"];
// NSLog(@"12题 %@",path);
//
// NSString *contentString2 = [[NSString alloc]initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
// NSLog(@"12题 %@",contentString2);
//
//
第二个内容:NSMutableString(可变的字符串) @""叫语法糖
// NSMutableString *mutableString1 = [[NSMutableString alloc]initWithFormat:@"%@%@",@"nihao",@"shuaige"];
//
//
// NSLog(@"1 %@",mutableString1);
// //可变的字符串,对于他的修改,实质就是对于自身的修改
// //可变字符串的操作方法
//
// //1,拼接
// [mutableString1 appendString:@"woxihuanni"];
// NSLog(@"2 %@",mutableString1);
//
// //2,替换
// //第一种替换方式
// NSRange range = NSMakeRange(0, [mutableString1 length]);
//
// //第三个参数搜索的方式,第四个参数:搜索的范围
// [mutableString1 replaceOccurrencesOfString:@"shuaige" withString:@"meinv" options:NSCaseInsensitiveSearch range:range];
// NSLog(@"3 %@",mutableString1);
//
// //第二种替换方式
// //第一个参数,要替换的范围,第二个参数要替换为什么内容
// [mutableString1 replaceCharactersInRange:NSMakeRange(6, 5) withString:@"shuaige"];
// NSLog(@"4 %@",mutableString1);
//
//
//
第三个内容:数组(不可变的数组) NSArray
//
// //特点1:可以存放不同类型的数据
// //特点2,oc里面的数组,里面的数据必须是对象
// //特点3,oc数组可以直接参加运算
// //特点4,数组是有序的
// Person *person1 = [[Person alloc]initWithName:@"gxm"];
// Person *person2 = [[Person alloc]initWithName:@"lh"];
// //下面的创建方式是语法糖。。
// NSArray *array1 = @[person1,person2,@"小明"];
//
// //1,alloc init 去创建
// NSArray *array2 = [[NSArray alloc]initWithObjects:person1,person2, nil];
//
// //2,类方法去创建
// NSArray *array3 = [NSArray arrayWithObjects:person1,person2, nil];
//
// //3,根据数组去创建数组 根据arry2创建arry4
// NSArray *array4 = [[NSArray alloc]initWithArray:array2];
//
打印数组
// //第一种
// //NSLog(@"%@",array1);
// //第二种 c语言方式
// for (int i = 0; i < 3; i++) {
// NSLog(@"1 %@",array1[i]);
// }
// //for循环去遍历数组
// for (id object in array1) {
// NSLog(@"2 %@",object);
// }
// for (Person *object in array2) {
// NSLog(@" %@",object);
// }
//
操作数组的方法
//
// // 1,求数组里面元素的个数
// NSUInteger arrayCount = [array1 count];
// NSLog(@"1 array1的元素个数为:%lu",arrayCount);
//
// // 2,删除元素--(不可变数组没有删除元素的方法)
// // 3,添加元素
// array1 = [array1 arrayByAddingObject:@"刘辉"];
// NSLog(@"3 %@",array1);
//
// // 4,获取数组里面第一个元素
// // array1[0]
// //Person *tenmp = [array1 firstObject];
// // 5,获取最后一个元素
// //NSString *string = [array1 lastObject];
//
// //6,判断数组里面是否包含某个元素
// BOOL result = [array1 containsObject:person2];
// NSLog(@"6 %d",result); // %g 打印出有效位数
//
// //7,判断一个元素到底在哪个位置
// NSUInteger index = [array1 indexOfObject:person1];
// NSLog(@"7 %lu",index);
//第四个内容 NSMutableArray 可变的数组
// NSMutableArray *mutableArray = [[NSMutableArray alloc]init];
// Person *person1 = [[Person alloc]initWithName:@"gxm"]; // 把person1添加到数组里面
// Person *person2 = [[Person alloc]initWithName:@"小胖子"];
// Person *person3 = [[Person alloc]initWithName:@"小瘦子"];
// [mutableArray addObject:person1]; //添加进去
// [mutableArray addObject:person2];
// [mutableArray addObject:person3];
// //删除元素
// [mutableArray removeObject:person1];
// [mutableArray removeObjectAtIndex:0]; // 第一个元素删除
// NSLog(@"%@",mutableArray);
// //批量的删除元素
// NSArray *array = @[person2,person3];
// [mutableArray removeObjectsInArray:array];
// NSLog(@"%@",mutableArray);
// //全部删除
// [mutableArray removeAllObjects];
// NSLog(@"%@",mutableArray);
// //交换两个元素
// [mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:2];
// NSLog(@"%@",mutableArray);
//
//
// NSArray *array1 = @[person1];
// NSArray *array2 = @[person2];
// NSArray *array3 = @[person3];
// NSArray *array0 = @[array1,array2,array3];
// NSLog(@"%@",array0);