数组以及字符串拼接与分割

1.OC的数组成员是任意的对象指针 与C中的链表结构类似(以nil结尾) 一切的数组操作不能越界

OC的数组分为不可变数组NSArray可变数组NSMutableArray

 
  1. NSArray*array=[[NSArrayalloc]initWithObjects:@"one",@"two",@"three",nil];
  2. NSLog(@"%@",[arrayobjectAtIndex:0]);//通过下标获取数组成员(下标从0开始)
  3. NSLog(@"%ld",[arraycount]);//获取数组有效成员个数(不包括nil)
  4. for(i=0;i<[arraycount];i++){//遍历数组(C方法)
  5. NSLog(@"%@",[arrayobjectAtIndex:i]);
  6. }
  7. NSLog(@"%@",array);//(OC)查看数组内容(先给array发送description消息,然后给每个成员都发送一个description消息)
  8. NSArray*array1=[[NSArrayalloc]initWithArray:array];//创建数组对象相当于拷贝
  9. NSArray*arry2=[NSArrayarrayWithArray:array];//创建数组对象相当于拷贝
  10. NSEnumerator*enumer=[arrayobjectEnumerator];//正序枚举器
  11. //创建一个枚举器把数组的每个元素的地址一次赋给枚举器,然后建立起某种关联(枚举器只能用来读数组成员)
  12. //枚举时会和数组创建某种关联(修改监视器/迭代器)限制枚举的同时不能修改元素只能读不能写
  13. idobj;
  14. //第一次循环把数组的第一个元素赋给obj第二次循环把第二个数组元素赋给obj
  15. while(obj=[enumernextObject]){//遍历数组
  16. NSLog(@"%@",obj);
  17. }
  18. //快速枚举第一次循环把array的第一个元素赋给ob第二次循环把array的第二个元素赋给ob直到nil(只能读不能改)
  19. for(idobinarray){
  20. NSLog(@"%@",ob);
  21. }
  22. //逆序输出数组(创建逆序枚举器第一次循环把最后一个元素赋给obj)
  23. NSEnumerator*enumer1=[arrayreverseObjectEnumerator];
  24. while(obj=[enumer1nextObject]){
  25. NSLog(@"%@",obj);
  26. }
  27. if([objisKindOfClass:[Dogclass]])//获取类的类型判是否是指定类的对象
  28. if([objisMemberOfClass:[Dogclass]]){
  29. }

2.不可变数组

 
  1. -------查找
  2. NSArray*array=[[NSArrayalloc]initWithObjects:@"one",@"two",@"three",@"one",nil];
  3. NSUIntegerindex=[arrayindexOfObject:@"one123"];//返回第一个找到的数组成员对应的下标找不到返回NSNotFound
  4. index=[arrayindexOfObject:@"one"inRange:NSMakeRange(1,3)];//在指定范围内查找
  5. if(index!=NSNotFound){
  6. NSLog(@"%ld",index);
  7. }
  8. ----抽取组成新的数组
  9. NSArray*array1=[arrayobjectsAtIndexes:[NSIndexSetindexSetWithIndexesInRange:NSMakeRange(1,3)]];
  10. 《数字集合》
  11. NSIndexSet这是个数字集合类
  12. [NSIndexSetindexSetWithIndexesInRange:NSMakeRange(1,3)]产生一个数字集合

3.可变数

 
  1. NSMutableArray*array=[[NSMutableArrayalloc]initWithObjects:@"one",@"two",@"three",@"four",nil];
  2. [arrayaddObject:@"five"];//在数组尾部插入元素
  3. [arrayinsertObject:@"six"atIndex:5];//在数组指定下标位置插入元素(不能越界,最大值为length)
  4. [arrayremoveObject:@"six"];//删除指定元素(数组中出现的所有位置都将被删除)
  5. [arrayremoveObject:@"two"inRange:NSMakeRange(0,3)];//从指定下标位置开始的指定长度内删除指定元素
  6. [arrayremoveLastObject];//删除最后一个元素
  7. [arrayremoveAllObjects];//删除所有元素
  8. [arrayreplaceObjectAtIndex:3withObject:@"ios"];//将指定下标位置元素替换为指定的元素
  9. [arrayexchangeObjectAtIndex:0withObjectAtIndex:3];//将指定下标的两个元素进行交换

4.字符串分割与拼接

 
  1. //@""空的字符串对象
  2. -------分割
  3. NSString*ptr=@"Iamaman";
  4. NSArray*array=[ptrcomponentsSeparatedByString:@""];//将字符串整体作为分割条件返回值为NSArray不可变数组
  5. NSMutableArray*array1=[NSMutableArrayarrayWithArray:array];//若修改,则将NSArray转化为NSMutableArray
  6. NSArray*array2=[ptrcomponentsSeparatedByCharactersInSet:[NSCharacterSetcharacterSetWithCharactersInString:@","]];//以字符串中的字符作为分割条件进行分割
  7. 《字符集合》
  8. NSCharacterSet这是个字符集合类
  9. [NSCharacterSetcharacterSetWithCharactersInString:@","]//把字符串转化为字符集合
  10. -------拼接
  11. NSString*str=[arraycomponentsJoinedByString:@""];
  12. 若分割条件出现在开头或者结尾,则会出现空串@"",如果不需要,则需要转化成NSMutableString对空串进行处理
  13. func1:[array1removeObject:@""];//找到空串直接删除
  14. func2:for(idobjinarray1){
  15. if([objlength]==0)//空串的长度为0
  16. if([objisEqualToString:@""])//与空串进行比较(字符串是不能进行==比较的,要使用函数)
  17. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值