今天主要练习NSString NSMutableString NSArray NSMutableArray
NSString(字符串)
方法1: [[NSString alloc] initWithFormat:@""] 创建一个字符串的对象,并将其格式化,然后给字符串对象进行赋值
方法2: stringWithFormat:@"" 结构等于[[NSString alloc]initWithFormat:@""]; 便利构造器创建字符串
方法3:stringWithUTF8String 将C语言字符串转化为OC的字符串对象,这个很重要 注:我是C语言字符串,所以没有加@符号
以上的方法是为了了解NSString 下面我们介绍一下NSString的12个方法
创建一个字符串的对象,并且给字符串对象赋值一个网站
NSString *str = [[NSString alloc] initWithFormat:@"http://item.taobao.com/item.htm?spm=a230r.1.14.83.wdbg0h&id=44327943363&ns=1&abbucket=2#detail"];
//1.获取字符串的长度 关键字length
NSInteger length = [str length];
//2.将字符串对象变成大写的 关键字 uppercaseString
NSString *upperStr = [str uppercaseString];
//3.将字符串对象变成小写的 关键字 lowercaseString
NSString *lowerStr = [str lowercaseString];
//4.判定字符串开头 关键字:hasPrefix
BOOL isBegin = [str hasPrefix:@"http:"];
//1代表YES 或者 TRUE
//5.判定字符串结尾 关键字hasSuffix
BOOL isEnd = [str hasSuffix:@"http:"];
//6.对字符串进行拼接 关键字:stringByAppendingString 注:会经常使用
NSString *appendStr = [str stringByAppendingString:@"/pinjie"];
//7.对字符串进行替换 关键字:stringByReplacingOccurrencesOffString
//注:替换的是字符串,而不是字符
NSString *replaceStr = [str stringByReplacingOccurrencesOfString:@"http" withString:@"mmmm"];
//8.对字符串进行比较 关键字:compare 注:会经常使用
//注:打印结果如果为-1 表示前面的小 如果是0 表示两个相等 如果是1 表示前面的大
NSInteger result = [@"cc" compare:@"bb"];
//9.判断字符串是否相等 关键字:isEqualToSting
BOOL isEqual = [@"ab" isEqualToString:@"ac"];
//10.1 截取字符串 关键字:substringFromIndex
NSString *subStr1 = [str substringFromIndex:10];
//substringFromIndex: 表示从给定的下标开始截取到字符串结束(包含当前下标);
//10.2 截取字符串 关键字:substringToIndex
NSString *subStr2 = [str substringToIndex:25];
//截取第一个字符到第25个
//10.3 截取字符串 关键字:substringWithRange
//OC中提供了很多可以快速创建结构体的方法,主要以NSMake开头 + 对应的结构体名字,例如:(NSMakeRange(位置)(长度))
NSString *rangeStr = [str substringWithRange:NSMakeRange(7, 25)];
//11.获取字符串的范围 rangeOfString
NSRange range = [str rangeOfString:@"taobao"];
NSLog(@"%ld,%ld",range.location,range.length);
//12.将基本类型转化为字符串 关键字:initWithFormat
//NSString *intStr = [[NSString alloc] initWithFormat:@"%d",10];
NSString *intStr = @"10";//笑笑语法
//对于NSString对象来说,是不可以改变的,不管以上的那种方法对NSString做了什么操作,都并没有该表NSString的本身,而是改变了NSString的副本.
//如果想要对NSString本身进行改变,那么就需要使用它的子类NSMutableString 在以上方法的基础上,多了增 删 改
NSMutableString *strmut = [[NSMutableString alloc] initWithFormat:@"我是可变的字符串"];
//插入方法 关键词:insert
[strmut insertString:@"哈哈" atIndex:8];
NSLog(@"%@",strmut);
//打印结果为:我是可变的字符串哈哈
//拼接方法 关键词:append
[strmut appendString:@"/你笑啥"];
//打印结果为:我是可变的字符串哈哈/你笑啥
//删除方法 关键词:delete
[strmut deleteCharactersInRange:NSMakeRange(6,7 )];
//重置方法 关键字:set
[strmut setString:@"我一直都在变化"];
NSArray (数组)
//创建三个字符串对象
NSString *str1 = [NSString stringWithFormat:@"iPhone4"];
NSString *str2 = [[NSString alloc] initWithFormat:@"iPhone5"];
NSString *str3 = @"iPhone6";
NSLog(@"%@ %@ %@",str1,str2,str3);
NSArray
方法1: initWithObjects 因为是数组,所以需要传入多个对象,这些对象之间用","隔开,最后以nil结尾.
创建一个数组对象来接收所传入的对象们.
NSArray *arr1 = [[NSArray alloc] initWithObjects:str1,str2,str3, nil];
NSLog(@"%@",arr1);
方法2:objectAtIndex: 通过下标找到对象 只会找到第一个符合的对象,即使在第一个对象之后在有符合的也不会显示,找到第一个之后,就回返回.
NSString *str = [arr1 objectAtIndex:1];
NSLog(@"%@",str);//NSString类型 iPhone5
NSInteger index = [arr1 indexOfObject:str2];
NSLog(@"%ld",index);//arr1下标为1
//方法3:查看数组元素个数
NSInteger count = [arr1 count];
NSLog(@"%ld",count);//结果:arr1里有3个元素
方法4:通过便利打印出各个元素
for(int i = 0; i < arr1.count; i++){
NSLog(@"%@",[arr1 objectAtIndex:i]);
}
方法5:排序 sortedArrayUsingSelector:@selector(compare:)这个方法是系统提供的,内部已经做好了排序的,所以知道方法就好,不需要过分的追究.
NSArray *sortArray = [arr1 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",sortArray);
NSMutableArray(可变数组)
//NSMutableArray 继承与NSArray 所以NSArray的方法NSMutableArray也都可以使用
//创建可变的数组对象
NSMutableArray *mutArray = [[NSMutableArray alloc] initWithObjects:str1,str3, nil];
方法1:添加 addObject
[mutArray addObject:str1];
[mutArray addObject:str2];
[mutArray addObject:str3];
NSLog(@"%@ %@ %@",str1,str2,str3);
方法2:删除 removeObjectAtIndex
[mutArray removeObjectAtIndex:1];
[mutArray removeObjectAtIndex:0];
[mutArray removeObjectAtIndex:2];
NSLog(@"%@",mutArray);
方法3:交换 exchangeObjectAtIndex:
[mutArray exchangeObjectAtIndex:1 withObjectAtIndex:0];
NSLog(@"%@",mutArray);
方法4:排序 sortUsingSelector:@selector(compare:)
NSString *str1 = @"Jack";
NSString *str2 = @"Henry";
NSString *str3 = @"ELyse";
NSString *str4 = @"John";
NSString *str5 = @"Justin";
NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithObjects:str1,str2,str3,str4,str5, nil];
[mutableArray sortUsingSelector:@selector(compare:)];
NSLog(@"%@",mutableArray);
//方法5:获取数组第一个元素 firstObject
[mutableArray firstObject];
NSLog(@"%@",mutableArray.firstObject);
//方法5:获取数组最后一个元素
[mutableArray lastObject];
NSLog(@"%@",mutableArray.lastObject);
}
return 0;