OC学习之--字符串类&数组类&值对象

Foundation框架

    Foundation框架是Cocoa编程, iOS编程的基础框架,包括:字符串,集合,日期,时间等基础类.

一. 字符串类

    1. 字符串: 

                C语言中字符串是char(ASCII)字符组成.

                OC中,字符串是由unichar(Unicode)字符组成.

                NSString, 不可变字符串,即:创建以后,内容和长度不能改变

                NSMutableString,可变字符串,即:创建以后,内容还可以修改

                创建新的字符串,可以使用实例方法和便利构造器    

    2. NSString常用方法

        1).不同类型转为NSString* 类型

  NSStrng *str = [NSString stringWithFormat:@"adfjljk%d" , 2];
  NSLog(@"%@", str);

        2).子串 - sub

NSString *strVal = @"qingchuner";
//从index为2的位置往后输出
NSString *str = [strVal substringFromIndex:2];
//输出到index为6
NSString *str1 = [strVal substringToIndex:6];
//区间输出
NSString *str2 = [strVal substringWithRange:NSMakeRange(2, 3)];
NSLog(@"%@", str2);

        3).拼接 - append

NSString *strVal = @"qingchuner";

//格式化,可以拼接多个字符串,多个其他类型的
NSString *str = [strVal stringByAppendingFormat:@"%@%@%@%@%@",@"esdfr", @"dsfdf", @"saldjf", @"sdf", @"DS"];
NSLog(@"%@", str);
//追加字符串
NSString *str = [strVal stringByAppendingString:@"sdsfk"];

        4). 替换 replace

NSString *strVal = @"qingchuner";
//将所有符合指定字符串替换,替换为所指定的字符串
NSString *str = [strVal stringByReplacingOccurrencesOfString:@"ing" withString:@"aaa"];
NSLog(@"%@", str);
NSString *str1 = [strVal stringByReplacingCharactersInRange:NSMakeRange(2, 3) withString:@"SSjjl"];
NSLog(@"%@", str2);

         5)判断比较

判断是否相等-使用频率最高
BOOLret = [strVal isEqualToSting:@"qingchuning"];
NSLog(@"%d", ret);

//判断大小
NSComparisonResult ret1 = [strVal compare:@"aaa"];
NSLog(@"%ld", ret1);
 //实用方法
 BOOL ret3 = [strVal hasPrefix:@"qi"];
 NSLog(@"%d", ret3);
        
BOOL ret4 = [strVal hasSuffix:@"g"];
NSLog(@"%d", ret4);

        6).转换

        //7.转换
        //字符串转换为其他类型
        NSString *strVal = @"2.0";
        //intValue doubleValue floatValue integerValue boolValue等等
        //注意:其他类型转换为字符串用...format方法
        float ret = [strVal floatValue];
        NSLog(@"%f", ret);
        
   -----------------------------------------------
        //大小写转换
        NSString *strVal = @"qingChuning";
        //转小写
        NSString *str1 = [strVal lowercaseString];
        NSLog(@"%@", str1);
        //转大写
        NSString *str2 = [strVal uppercaseString];
        NSLog(@"%@", str2);
        //首字母转大写,其他的转为小写
        NSString *str3 = [strVal capitalizedString];
        NSLog(@"%@", str3);

 二. 数组

    1.不可变数组

        //不可变数组
        //1.  创建&初始化
        NSArray *arr1 = [[NSArray alloc] initWithObjects:@"王宁", @"王博男",@"邹雨", @"魏冬冬", nil];
        
        NSArray *arr2 = [NSArray arrayWithObjects:@"王宁", @"王博男",@"邹雨", @"魏冬冬", nil];

        //复制一份arr1给arr3
        NSArray *arr3 = [NSArray arrayWithArray:arr1];
        
        
        //2.数组个数
        NSLog(@"%ld", arr1.count);
        //3.遍历
        for (int i = 0; i < arr1.count; i ++) {
            NSLog(@"%@", arr1[i]);
            //通过下标访问数组
            NSLog(@"%@", [arr1 objectAtIndex:i]);
        }
        
        //通过对象值获取下标(获取下标)
        NSLog(@"%ld", [arr1 indexOfObject:@"王宁"]);

    2.可变数组

    //可变数组
        //1. 创建&初始化
        NSMutableArray *arrm1 = [[NSMutableArray alloc] initWithObjects:@"王宁", @"王博男",@"邹雨", @"魏冬冬", nil];
//        NSMutableArray *arrm2 = [NSMutableArray arrayWithObjects:@"王宁", @"王博男",@"邹雨", @"魏冬冬", nil];
    
        //常用遍历构造器方法
        NSMutableArray *arrm2 = [NSMutableArray array];
//        NSLog(@"%ld", [arrm2 indexOfObject:@"王宁"]);
        
        //2.添加
        [arrm1 addObject:@"高帅"];
        
        
        //数组中元素可以是不同类型, 但都得是对象类型.
        [arrm1 addObject:arrm2];
        
           
        //3. 插入
        [arrm1 insertObject:@"宁宁" atIndex:2];
        //4.删除
        [arrm2 removeObject:@"魏冬冬"];
        //删除最后一个元素
        [arrm2 removeLastObject];
        
        //5.替换
        //将替换指定下标处的元素值,替换为指定值
        [arrm1 replaceObjectAtIndex:3 withObject:@"wangningn"];
        
        //6. 交换
        //交换两个指定下标元素
        [arrm1 exchangeObjectAtIndex:3 withObjectAtIndex:5];

三.值对象

        //值对象
        int a = 1;
        //int转对象类型
        NSNumber *val = [NSNumber numberWithInt:a];
        NSLog(@"%@", val);
        //对象转为int
        NSLog(@"%d",[val intValue]);
        
        
        NSRange range = {1, 2};
        //结构体/指针类型转对象类型
        NSValue *val = [NSValue valueWithRange:range];
        NSLog(@"%@", val);
        
        //对象类型转结构体/指针类型
        NSRange ret = [val rangeValue];









你可能感兴趣的:(NSString,NSArray,nsnumber)