OC第七天笔记2016年03月22日(周二)A.M

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC第七天笔记2016年03月22日(周二)A.M相关的知识,希望对你有一定的参考价值。

1. 可变字符串

NSMutableString* mstr = [[NSMutableString alloc] initWithCapacity:10];

增 删 改 替换

//[mstr length]

[mstr insertString:@"http://" atIndex:0];

//第一个参数:即将要插入的字符串

//第二个参数:插入的位置(下标)

NSLog(@"%@",mstr);

//http://www.baidu.com

[mstr insertString:@"www.baidu.com" atIndex:[mstr length]];

 NSLog(@"%@",mstr);

        //1.1 追加:

        [mstr appendFormat:@"?username=zhang"];

        NSLog(@"%@",mstr);

        //1.2 删除

        [mstr deleteCharactersInRange:NSMakeRange(20, 15)];

        //参数:所要删除内容的范围。

        NSLog(@"%@",mstr);

        //1.3 修改

        [mstr setString:@"aabb"];

        //参数:新的内容

        NSLog(@"mstr: %@",mstr);

        //1.4 替换

        [mstr replaceCharactersInRange:NSMakeRange(1, 2) withString:@"cc"];

        //参数:第一个参数指定要替换的范围  第二个参数:新的内容。

        NSLog(@"mstr: %@",mstr);

        [mstr replaceOccurrencesOfString:@"a" withString:@"A" options:0 range:NSMakeRange(0, mstr.length)];

        //参数:第一个参数:即要替换的内容  第二个参数:新内容 第三个参数:查找方式  第四个参数:查找范围

        //功能:将查找范围内所有匹配的子串全部替换为新内容。

        NSLog(@"mstr: %@",mstr);

        //1.5 字符串的分割 //http://www.baidu.com?username=zhang

        //https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000&wd=2016%E8%8B%B9%E6%9E%9C%E5%8F%91%E5%B8%83%E4%BC%9A&rsv_idx=2

        [mstr setString:@"https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000&wd=2016%E8%8B%B9%E6%9E%9C%E5%8F%91%E5%B8%83%E4%BC%9A&rsv_idx=2"];

        NSArray* array = [mstr componentsSeparatedByString:@"?"];

        NSLog(@"%@",array);

        //获取数组中的某元素

        NSString* component = array[1];

        NSLog(@"%@",component);

        NSArray* array1 = [component componentsSeparatedByString:@"&"];

        NSLog(@"array1:%@",array1);

 

2. //数组 遍历

        //1. 不可变数组

        NSArray* array = [[NSArray alloc] initWithObjects:@"hello", @"world", @"Hi" , [NSNumber numberWithInt:10],nil];

        //参数:数组元素(只能是OC中的非nil对象)

       

        NSArray* array1 = [NSArray arrayWithObjects:@"张三",@"李四",@"王五", nil];

        //类方法,数组array1被加入自动释放池中

       

        //遍历数组:

        NSLog(@"%@",array);

        NSLog(@"%@",array1);

       

       

        //1.1 常规遍历

        for (int i = 0; i < [array1 count]; i++) {

            //[array1 cout]获取数组元素的个数

            NSLog(@"%@",array1[i]);

            NSLog(@"%@",[array1 objectAtIndex:i]); //与array1[i]等价

           

        }

       

        //1.2 快速遍历

        for (id object in array1) {

            NSLog(@"%@",object);

        }

       

        [array release];

       

        //获取指定对象的位置

        NSUInteger index = [array indexOfObject:@"Hi"];

        //参数:待查找的元素

        if (index == NSNotFound) {

            NSLog(@"aa is not in array !");

        }

        else

            NSLog(@"该元素的下标是:%lu",index);

       

       

        //2. 可变数组

       

        NSMutableArray* marry = [[NSMutableArray alloc] initWithCapacity:4];

        NSMutableArray* marry1 = [[NSMutableArray alloc] initWithCapacity:4];

       

        //增 删 交换

       

        //2.1 增加元素

        [marry addObject:@"Hello"];

        //参数:即将加入集合的元素,默认将元素加入到集合的末尾

        [marry insertObject:@"World" atIndex:0];

        //参数一:即将插入的对象  参数二:位置(下标)

        NSLog(@"%@",marry);  //向数组中插入元素时,只能插入非空对象。

       

        //2.2 删除元素

        [marry removeObject:@"Hello"]; //删除指定的对象

        NSLog(@"%@",marry);

       

        [marry addObject:@"admin1"];

        [marry addObject:@"admin2"];

        [marry addObject:@"admin3"];

        [marry removeObjectAtIndex:1]; //删除指定位置的元素  注意:下标不能越界。

       

        NSLog(@"%@",marry);//删除最后一个元素

        [marry removeLastObject];

        NSLog(@"%@",marry);

        //2.3 交换元素

        [marry exchangeObjectAtIndex:0 withObjectAtIndex:1];

        NSLog(@"%@",marry);

       

        [marry removeAllObjects];//删除所有元素(清空容器)

        NSLog(@"%@",marry);

    //2.3 数组排序

    NSArray* sortArray = [marry sortedArrayUsingSelector:@selector(compare:)];//返回值类型是对  象 receiver既可以是可变数组,

    又可以是不可变数组 receiver的内容不好收到任何影响 将排序完成后的内容存至一个新数组进行返回

        //默认使用系统的compare:进行数组元素的两两比较,最终的数列是按从小到大的顺序进行排列。

        NSLog(@"marry:%@  sortArray:%@",marry,sortArray);

      

    [marry sortUsingSelector:@selector(compare:)];//返回类型是void receiver只能是可变数组,排序时直接修改receiver,不会返回任何数据

        NSLog(@"marry:%@",marry);

以上是关于OC第七天笔记2016年03月22日(周二)A.M的主要内容,如果未能解决你的问题,请参考以下文章

OC第七天笔记2016年03月21日(周一)P.M

OC第八天笔记2016年03月23日(周三)A.M

OC第六天笔记2016年03月21日(周一)A.M

OC第九天笔记2016年03月24日(周四)A.M

OC第四天笔记2016年03月18日(周五)A.M

C++第六天笔记2016年02月23日(周二)A.M