• OC基础数据类型-NSArray


    1、数组的初始化

    1 NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", @"Three", @"Four", nil];

    数组的元素可以是任意的对象,不局限于字符串;
    数组中装有元素的地址;

    1 NSLog(@"%@", array);    //打印数组,实际上是打印数据的每一个对象。因为数组重写的Description方法

    遍历数组中的对象
    方法1:枚举器法

    1 NSEnumerator *enumerator = [array objectEnumerator];
    2 id obj;
    3 while (obj = [enumerator nextObject]) {
    4     NSLog(@"%@", obj);
    5 }

    方法2:快速枚举法

    1 for(id obj in array){
    2     NSLog(@"%@", obj);
    3 }

    方法3:使用i值遍历

    1 NSUInteger length = [array count]; //返回数组元素的个数
    2 obj = [array objectAtIndex:2]; //返回单个元素的地址
    3 NSInteger i;
    4 for(i = 0; i<[array count];i++){
    5     NSLog(@"%@", [array objectAtIndex:i]);
    6 }

    2、可变数组

    1 NSMutableArray *array = [[NSMutableArray alloc] init];
    2 //往可变数组中添加元素
    3 [array addObject:@"one"];
    4 [array addObject:@"two"];
    5 [array addObject:@"three"];

    交换两个数组的位置

    1 [array exchangeObjectAtIndex:0 withObjectAtIndex:2];

    删除元素,remove

    1 [array removeObject:@"one"];
    2 [array removeObjectAtIndex:1];
    3 [array removeAllObjects];

     同时遍历和删除数组元素的时候,需要逆序;否则,会出现问题。

    1 NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"one",@"two",@"three", nil];
    2 //逆序
    3 NSEnumerator *enumerator = [array reverseObjectEnumerator];
    4 NSString *str;
    5 while (str = [enumerator nextObject]) {
    6     [array removeLastObject];
    7     NSLog(@"%@",str);
    8 }
    9 NSLog(@"%@",array);

    3、数组和字符串的联合使用

    将一个字符串逆序输出

    1 NSString *str = @"I am a so bad man";
    2 NSArray *array = [str componentsSeparatedByString:@" "]; //用空格分割字符串
    3 NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
    4 NSEnumerator *enumerator = [array reverseObjectEnumerator];
    5 NSString *obj;
    6 while (obj = [enumerator nextObject]) {
    7     [mutableArray addObject:obj];
    8 }
    9 NSString *newStr = [mutableArray componentsJoinedByString:@" "]; //用指定的字符串,拼接字符串

    结题!!!

  • 相关阅读:
    汽车加油问题--贪心算法
    区间相交问题---贪心算法
    算法-动态规划-数字三角问题
    jar转成exe
    kafka zookeeper学习(2) 测试kafka与zookeeper环境
    kafka zookeeper学习(1) windows搭建kafka与zookeeper环境
    java调用linux系统命令
    linux hg(mercurial)入门
    redis集群构建过程 linux windows
    Java JTextArea不能实时刷新的问题
  • 原文地址:https://www.cnblogs.com/GISerYang/p/3339172.html
Copyright © 2020-2023  润新知