黑马程序员 oc随记 foundation框架 nsstring.NSmutable.nsarray与nsdictionay

------- android培训java培训ios培训、期待与您交流! ----------

一.NSString 

1)campare

Nsstring是oc极其常用的类,通常用于字符串相关的工作。

其一便是字符串大小的比较

字符串根据排列顺序的不同,会有大小差异,如果我们要比较两个字符串的大小的话,可以使用聪明compare方法。

 compare方法的返回结果有三种:

nsorderedascending,这表示第一个字符串大于第二个字符串。 值为1。

nsorderedsame,如字面所示,表示两个字符串大小相等。值为0.

nsordereddesending,它表示第一个字符串小于第二个字符串。值为-1。

#import <Foundation/Foundation.h>


int main(int argc, const char * argv[]) {

    @autoreleasepool {

     NSString *s1=@"aaaa";

     NSString *s2=@"ssss";

     NSComparisonResult  a=  [s1 compare:s2];

        switch (a) {

            case 1:

                NSLog(@"一大于二");

                break;

            case 0:

                NSLog(@"相等");

                break;

            case -1:

                NSLog(@"二大于一");

                break;

                

            default:

                break;

        }

    }

    return 0;

}

另,compare还有三种参数,分别为:

NSCaseInsensitireSearch:不区分大小写

NSLiteralSearch:区分大小写(默认)

NSNumbericSearch:比较字符串的字符个数而不是总和的ASCII码值。


2)前后缀检查以及搜索

nsstring中有一种方法可以快速帮我们检查前缀后缀是否符合我们所需,这就是hasprefix与hassuffix。

#import <Foundation/Foundation.h>


int main(int argc, const char * argv[]) {

    @autoreleasepool {

     NSString *s1=@"daiuhsdasdjasdoij";

        if ([s1 hasPrefix:@"dai"]) {

            NSLog(@"前缀正确");

        }else{

            NSLog(@"前缀错误");

        }

        if ([s1 hasSuffix:@"ij"]) {

            NSLog(@"后缀正确");

        }else{

            NSLog(@"后缀错误");

        }

    }

    return 0;

}


搜索:nsstring系的成员中存在一个方法能快速帮我们搜索一个字符串中是否存在另一个字符串,并告诉我们它第一次出现的位置,这个方法就是NSRange与rangeofstring

#import <Foundation/Foundation.h>


int main(int argc, const char * argv[]) {

    @autoreleasepool {

     NSString *s1=@"daiuhsdasdjasdoij";

        NSString *s2=@"uhsd";

        NSRange nsr=[s1 rangeOfString:s2 ];

        NSLog(@"%lu,%lu",nsr.location,nsr.length); //location表示字符串首次出现的位置 length表示字符串的长度

        

    }

    return 0;

}

需要注意的是,当字符串无法被搜索到时,location会显示成一个极大数,而length为0,虽然显示为极大数弹实际上location会被编译器认定为NSNotFound,此时,可以通过这个来判断字符串是否被搜索到。

NSmutable是一个不小的家族,其中有NSmutableString,NSmutableArray与NSmutableDictionary.
虽然各自的源来都有所不同,string的功能是创建一个字符串,array的功能是创建一个数组,而dictionary的功能是创建一个字典,但加上nsmutable的它们的额外功能都是相同的,便是在原有的基础上,添加上更多的灵活性,让原本不可变不可修改的字符串、数组、字典变得可修改,可添加,可删除。


二、NSArray
   NSArray可以理解成是oc中创建数组的方法,在o c的编写时要尽可能用它去创建数组。
它的特点是:一旦创建成果便不可更改,只能存放oc对象。


#import <Foundation/Foundation.h>


int main(int argc, const char * argv[]) {

    @autoreleasepool {

        NSArray *s1=@[@"1",@"2",@"3",@"4"];//这是目前最为简便的创建数组的方式。

        NSLog(@"%@",s1);

        NSString *s2=[s1 objectAtIndex:2];//通过objectatindex取任意数组的下标并将其写入s2

        NSLog(@"%@",s2);

        s2=s1[3];

        NSLog(@"%@",s2);//这是简化后的访问方法

        for (int i =0; i<s1.count; i++) {

            NSString *s2=[s1 objectAtIndex:i];

            NSLog(@"%@",s2);

        }//之前最常用的遍历方法

        for (NSString *s3 in s1) {

            NSLog(@"haha%@",s3);  //使用forin助记符产生的一种遍历方式

        }

        [s1 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

            NSLog(@"block%@,%lu",obj,idx); //使用block的一种遍历方式

        }];

       

    }

    return 0;

}


三、NSDictionary
NSDictionary翻译过来叫做‘字典’,日常生活中字典的作用通常为:通过一个拼音或者缩写就能找到对应的详细解释。
NSDictionary的作用类似:通过一个key(键)找到对应的value(值),就是用一把钥匙打开对应的宝箱,获取其中的财富。

#import <Foundation/Foundation.h>


int main(int argc, const char * argv[]) {

    @autoreleasepool {

        NSDictionary *s1=@{@"zj":@"zhijiang",@"bj":@"beijing"}; //字典最简便的创建格式,需要注意的是,keyvalue并行,每一个key:value联结起来。

        NSLog(@"%@",s1);//以%@的形式打印字典,

        NSLog(@"%lu",s1.count); //获取字典的长度

        NSString *s2=[s1 objectForKey:@"zj"];

        NSLog(@"%@",s2);//获取字典中key所对应的值保存在s2中并打印出来。

        for (NSString *s3 in s1) {

            NSLog(@"key:%@",s3);  //s3取值为key

             NSString *s4=[s1 objectForKey:s3];  //通过key 使用objectforkey 获取value值并保存在s4中打印出来。

            NSLog(@"%@",s4);

        }

    }

    return 0


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值