20150611_OC之数组NSArray中函数操作
来源:互联网 发布:会员积分软件免费版 编辑:程序博客网 时间:2024/06/05 16:37
我们在学习及开发中,经常对数组进行各种操作,使用系统库提供的函数对数组操作极其方便,下面就来 介绍NSArray中常用的方法的使用:
//// main.m// IOS150611_ObjectiveC_NSArrayOperation//// Created by Peng Junlong on 15/6/11.// Copyright (c) 2015年 Peng Junlong. All rights reserved.////*******************************//*//* 数组的操作//*//*******************************#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { //@[@"one",@"two",@"three",@"four",@"five"]表示一个数组对象 NSArray *array1 = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five", nil]; //计算数组元素的个数 NSInteger cnt = [array1 count]; NSLog(@"cnt = %ld",cnt); //获取指定位置的对象 id obj = [array1 objectAtIndex:2]; NSLog(@"obj = %@",obj); //添加数组元素 //- (NSArray *)arrayByAddingObject:(id)anObject; NSArray *array2 = [array1 arrayByAddingObject:@"six"]; //实质是创建一个新的数组对象array2来存储array1中的元素和six,不是直接修改array1 NSLog(@"array2 = %@",array2); //用传入的数组元素添加到数组 //- (NSArray *)arrayByAddingObjectsFromArray:(NSArray *)otherArray; NSArray *otherArray = [[NSArray alloc] initWithObjects:@"hello",@"world", nil]; NSArray *array3 = [array1 arrayByAddingObjectsFromArray:otherArray]; NSLog(@"array3 = %@",array3); //用给定的分隔符链接数组中的元素,返回字符串 //- (NSString *)componentsJoinedByString:(NSString *)separator; NSString *str = [array3 componentsJoinedByString:@"->"]; NSLog(@"str = %@",str); //结果:str = one->two->three->four->five->hello->world //判断是否包含某个对象 BOOL ret = [array3 containsObject:@"hello"]; NSLog(@"ret = %i",ret); //结果:ret = 1 //返回两个数组中第一个相同的对象 //- (id)firstObjectCommonWithArray:(NSArray *)otherArray; id obj2 = [array3 firstObjectCommonWithArray:otherArray]; NSLog(@"obj2 = %@",obj2); //结果:obj2 = hello //返回传入对象在数组中第一次出现的位置 //- (NSUInteger)indexOfObject:(id)anObject; NSArray *array4 = [NSArray arrayWithObjects:@"ne",@"two",@"three",@"one",@"two",@"one", nil]; NSUInteger index = [array4 indexOfObject:@"two"]; NSLog(@"index = %lu",index); //结果:index = 1 //返回传入对象在数组中指定范围内第一次出现的位置 //- (NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range; NSRange range = {2,3}; index = [array4 indexOfObject:@"one" inRange:range]; NSLog(@"index = %lu",index); //返回和传入对象相同的对象在数组中第一次出现的位置 NSString *s = [NSString stringWithUTF8String:"one"]; index = [array4 indexOfObjectIdenticalTo:s]; NSLog(@"index = %lu",index); //判断两个数组是否相等 BOOL ret3 = [array2 isEqualToArray:array3]; NSLog(@"ret3 = %d",ret3); //获取数组中的第一个元素 id obj3 = [array4 firstObject]; NSLog(@"obj3 = %@",obj3); //获取数组中的最后一个元素 id obj4 = [array4 lastObject]; NSLog(@"obj4 = %@",obj4); //==================数组的遍历================= //方法一:下标法 NSArray *array5 = @[@"one",@"two",@"three",@"four"]; NSUInteger len = [array5 count]; for (NSUInteger i =0; i<len; i++) { NSLog(@"%@",[array5 objectAtIndex:i]); } //方法二:枚举器法 //正序枚举所有对象 //生成枚举器对象 NSEnumerator *enumerator = [array5 objectEnumerator]; id obj5 = nil; while (obj5 = [enumerator nextObject]) { // 执行一次nextObject会自动指向下一个对象的地址 NSLog(@"%@",obj5); } //逆序枚举所有对象 NSEnumerator *reverseEnumertator = [array5 reverseObjectEnumerator]; while (obj5 = [reverseEnumertator nextObject]) { NSLog(@"%@",obj5); } //方法三:快速枚举法,for循环的一种 for(id item in array5) { NSLog(@"%@",item); } //================数组排序=============== //- (NSArray *)sortedArrayUsingSelector:(SEL)comparator; //SEL相当于C中的函数指针,选择一个函数进行排序 NSArray *array6 = @[@"one",@"two",@"three",@"four",@"five"]; NSArray *sortArray = [array6 sortedArrayUsingSelector:@selector(compare:)]; NSLog(@"sortArray = %@",sortArray); //================数组提取=============== //提取指定范围内的子数组(连续的) NSArray *subArray = [array6 subarrayWithRange:NSMakeRange(2, 3)]; NSLog(@"%@",subArray); //- (NSArray *)objectsAtIndexes:(NSIndexSet *)indexes; NSMutableIndexSet *indexSet = [[NSMutableIndexSet alloc] initWithIndex:0]; [indexSet addIndex:3]; [indexSet addIndex:4]; NSArray *subArray2 = [array6 objectsAtIndexes:indexSet]; NSLog(@"%@",subArray2); //以传入的字符串整体分割字符串,返回一个数组 /*2.对称字符串(10分) 传入一个字符串,将这个字符串组合成一个新的对称字符串返回 例如: 传入:@"I love you Mery" 返回:@"I love you Mery Mery you love I" */ NSArray *array7 = [@"I love you Mery" componentsSeparatedByString:@" "]; //以" "分割字符串// NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:array7];// [mutableArray removeObject:@""]; //去除空的字符串对象// NSLog(@"mutableArray = %@",mutableArray); NSArray *destArray = [NSArray arrayWithArray:array7]; for (NSInteger i=[array7 count]-1; i>0; i--) { destArray = [destArray arrayByAddingObject:[array7 objectAtIndex:i]]; } NSString *destString = [destArray componentsJoinedByString:@" "]; NSLog(@"%@",destString); //结果:I love you Mery Mery you love /* //2, 字符串分割 @“I #am Prime # # #Optimus” //字符串分割函数 按照 @" #"字符串整体分割 //以字符串整体进行分割 NSArray *array8 = [@"I #am Prime # # #Optimus" componentsSeparatedByString:@" #"]; NSLog(@"array8 = %@",array8); //以字符集合进行分割 //- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator NSArray *array9 = [@"I #am Prime # # #Optimus" componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" #"]]; NSLog(@"array9 = %@",array9); */ //3有两个字符串@"I am a good girl";@"You are a bad boy"; 将这两个字符串单词,交叠,形成系的字符串 @"I You am are a a good bad girl boy" printf("输入两个字符串:"); char str1[100] = {}; char str2[100] = {}; scanf("%[^\n]\n%[^\n]",str1,str2); NSString *string1 = [NSString stringWithUTF8String:str1]; NSString *string2 = [NSString stringWithUTF8String:str2]; NSArray *array10 = [string1 componentsSeparatedByString:@" "]; //以" "分割字符串 NSArray *array11 = [string2 componentsSeparatedByString:@" "]; NSArray *destArray1 = [NSArray array]; NSInteger len10 = [array10 count]; NSInteger len11 = [array11 count]; NSInteger i=0; NSInteger j=0; while (i<len10 && j<len11) { destArray1 = [destArray1 arrayByAddingObject:array10[i]]; destArray1 = [destArray1 arrayByAddingObject:array11[j]]; i++; j++; } if (i<len10) { while (i<len10) { destArray1 = [destArray1 arrayByAddingObject:array10[i]]; i++; } } if (j<len11) { while (j<len11) { destArray1 = [destArray1 arrayByAddingObject:array11[j]]; j++; } } NSString *destString1 = [destArray1 componentsJoinedByString:@" "]; NSLog(@"%@",destString1); } return 0;}
0 0
- 20150611_OC之数组NSArray中函数操作
- 20150611_OC之数组NSMutableArray中函数操作
- 20150611_OC之数组NSArray创建
- objective-c 中数据类型之三 数组(NSArray) 高级操作
- NSArray 数组操作
- IOS开发中 字符串和数组NSString NSArray操作
- IOS开发中 字符串和数组NSString NSArray操作
- IOS开发中 字符串和数组NSString NSArray操作
- IOS开发中 字符串和数组NSString NSArray操作
- NSArray,NSSet,NSDictionary 操作函数
- OC语法之NSArray数组
- 03 OC之数组NSArray
- 20150612_OC之数组及复合类的练习
- Iphone数组一些基础操作 NSArray/NSMutableArray
- OC-数组常用操作(NSArray、NSMutableArray)
- foundation框架--NSArray类、数组常用操作
- 字符串NSString和数组NSArray操作
- 20150619_OC之NSData及文件操作NSFileHandle
- sgu262:Symbol Recognition(状压DP)
- hg转git的那些事
- 【福利来袭】扫描CSDN学院二维码,即送电子优惠券一张!
- SIP 之 imsdroid学习-----阿冬专栏
- Update curl on Android to resolve security problem cause by OpenSSL
- 20150611_OC之数组NSArray中函数操作
- 错误集-在IOS8中百度地图无法定位
- Python:各种编码简单总结
- "server tomcat v8.0 server at localhost failed to start"+"A child container failed during start"
- cocos3.3 响应Android的Menu键和Back键
- Android--UI之Spinner
- 20150611_OC之数组NSMutableArray中函数操作
- OOAD 学习笔记 八
- leetcode 日经贴,Cpp code -Basic Calculator