Foundation框架中的NSString对象

一 NSString对象

1.字符串对象创建

 //字符串对象
        //1.字符串前加上@  @表示对象
        //OCStr1是一个对象指针,指向常量区的字符串对象
        
        NSString *OCStr1 = @"China";//存储在常量区
        
        //NSLog 自动换行
        NSLog(@"OCStr1 = %@",OCStr1);
        
        // 字符串对象的创建—构造方法
        //用C语言的字符串构造一个OC字符串对象
        //initWithUTF8String 方法名 用C语言字符串构造一个OC字符串
        NSString *OCStr2 = [[NSString alloc] initWithUTF8String:"welcome to china" ];
        /*NSString *OCStr2 = [NSString alloc];//先分配内存空间
        OCStr2 = [OCStr2 initWithUTF8String  :"welcome to china"] ;*/ //再初始化
        NSLog(@"OCStr2 = %@",OCStr2);
        
        //格式化构造OC字符串对象
        //@ 为字符串对象  alloc 创建对象  init 初始化
        //initWithFormat 格式化构造OC字符串
        
        NSString *OCStr3 = [[NSString alloc] initWithFormat:@"%@##%i##%@",@"welcome",888,@"hello" ];
        NSLog(@"OCStr3 = %@",OCStr3);
        
        //传递字符串对象
        //NSString *name
        //用传递的字符串对象构造新的字符串对象
        //initWithStrig 用传递的方法构造字符
        
        NSString *OCStr = @"上海火车站" ;
        NSString *OCStr4 = [[NSString alloc] initWithString:OCStr];
        NSLog(@"OCStr4 = %@",OCStr4);
        
        //用C语言的字符串构造OC字符串对象
        NSString *OCStr5 = [[NSString alloc] initWithCString:"中国教育" encoding:NSUTF8StringEncoding];
        NSLog(@"OCStr5 = %@",OCStr5);
        
        //创建字符串对象  -------  类方法
        //把C语言字符串转换成OC字符串对象
        NSString *OCStr6 = [NSString stringWithUTF8String:"hello world"];
        NSLog(@"OCStr6 = %@",OCStr6);
        
        //用传入的字符串对象创建新的字符串对象
        NSString *OCStr7 = [NSString stringWithString: OCStr];
        NSLog(@"OCStr7 = %@" ,OCStr7);
        
        //格式化创建字符串对象
        NSString *OCStr8 = [NSString stringWithFormat:@"%d*%g*%s",123,89.43,"hello world" ];
        NSLog(@"OCStr8 = %@" ,OCStr8);
        
        //用C语言的字符串创建OC字符串对象
        NSString *OCStr9 = [NSString stringWithCString:"i am a good boy 中国" encoding: NSUTF8StringEncoding];
        NSLog(@"OCStr9 = %@" ,OCStr9);
        
        //上面的返回值是字符串类型
        
        //字符串其他常用方法
        //求字符串的长度
        NSString *str = @"welcome 中国" ;
        //NSInteger long int 类型
        NSInteger len = [str length] ;
        NSLog(@"len = %li",len);

2.比较字符串大小

//#define YES ((Bool)1)
        //#define NO ((Bool)0)
        //BOOL:返回值类型      ret4 :返回值  isEquarlToString 方法
        BOOL ret4 = [str5 isEqualToString:str6];
        if ( ret4 == YES)
        {
            NSLog(@"str5 等于 str6");
        }
        else
        {
            NSLog(@"str5 不等于 str6");
        }
        

3.区分大小写比较字符串大小

//compare : 判断两个字符串是否相等 方法名
        //返回值 是下面三个
        //NSOrderedAsending = -1 递增
        //NSOrderedSame    相等
        //NSOrderedDescending  递减
        //NSComparisonResultret1 : ret1 是比较完的返回值  NSComparisonResult:返回值类型
        NSComparisonResult ret1 = [str1 compare:str2];
        if (ret1 == NSOrderedAscending)
        {
            NSLog(@"str1 小于 str2");
        }
        else if (ret1 == NSOrderedSame)
        {
            NSLog(@"str1 等于 str2");
        }
        else if (ret1 == NSOrderedDescending)
        {
            NSLog(@"str1 大于 str2") ;
        }
        

4.不敏感区分大小写比较字符串大小

        NSString *str3 = @"welcome To china";
        NSString *str4 = @"welcome to china";
        
        NSComparisonResult ret2 = [str3 caseInsensitiveCompare:str4];
        
        if (ret2 == NSOrderedAscending)
        {
            NSLog(@"str3 小于 str4");
        }
        else if ( ret2 == NSOrderedSame)
        {
            NSLog(@"str3 等于 str4");
            
        }
        else if ( ret2 == NSOrderedDescending)
        {
            NSLog(@"str3 大于 str4");
            
        }
        //compare 方法 不区分英文大小写
        NSComparisonResult ret3 = [str3 compare:str4 options:NSCaseInsensitiveSearch];
        if (ret3 == NSOrderedAscending)
        {
            NSLog(@"str3 小于 str4");
        }
        else if ( ret3 == NSOrderedSame)
        {
            NSLog(@"str3 等于 str4");
            
        }
        else if ( ret3 == NSOrderedDescending)
        {
            NSLog(@"str3 大于 str4");
            
        }
        

4.字符串判断

        //#define YES ((Bool)1)
        //#define NO ((Bool)0)
        //BOOL:返回值类型      ret4 :返回值  isEquarlToString 方法
        BOOL ret4 = [str5 isEqualToString:str6];
        if ( ret4 == YES)
        {
            NSLog(@"str5 等于 str6");
        }
        else
        {
            NSLog(@"str5 不等于 str6");
        }
        
        //判断是否以传入字符串开头的字符串 返回值为BOOL类型
        BOOL ret5 = [@"www.baidu.com" hasPrefix:@"www"];
        if ( ret5 == YES)
        {
            NSLog(@"是以传入字符串开头");
        }
        else
        {
            NSLog(@"不是以传入字符串开头");
        }
        
        //判断是否以传入字符串结尾的字符串
        BOOL ret6 = [@"www.baidu.com" hasSuffix:@".com"];
        NSLog(@"ret6 = %i",ret6);
        

5.字符串追加

        //字符串的追加  不是str7 直接变成 baidu.com     不是直接追加
        //NSString 创建的是不可变字符串对象 不能直接在原字符串末尾追加字符串,只能利用原字符串及传入的字符串对象创建新的字符串返回
        NSString *str7 = @"baidu";
        NSString *str8 = [str7 stringByAppendingString:@".com"];
        NSLog(@"str7 = %@",str7);//str7 = baidu
        NSLog(@"str8 = %@",str8);//str8 = baidu.com
        
        //格式化追加字符串
        NSString *str9 = [str7 stringByAppendingFormat:@"%d%s",123,"hello world"];
        NSLog(@"str9 = %@",str9);//str9 = baidu123hello world

6.字符串提取

//字符串的提取 从指定位置提取子串到字符串末尾
        NSString *str10 = @"www.hao123.com";
        //  返回值是一个字符串             提取子串   下标
        NSString *sbuString = [str10 substringFromIndex:4];
        NSLog(@"subString = %@",sbuString); //subString = hao123.com
        //NSLog(@"subString = %@",[str10 substringFromIndex:4]);
        
        //提取子串到指定位置,不包含指定下标位置的字符
        NSLog(@"subString = %@",[str10 substringToIndex:4]);//subSring = www.

        //提取指定范围的子串
        /*typedef struct _NSRange {
            NSUInteger location ;//提取子串的位置
            NSUInteger length ;//提取子串的长度
         }NSRange;*/
        NSRange range1 = {4,6};
        // 冒号后面传入一个结构体
        NSLog(@"subString = %@",[str10 substringWithRange:range1]); // subString = hao123
        
        //NSRange NSMakeRange(NSUInteger loc, NSUInteger len)
        //返回一个NSRange类型的值
        NSLog(@"subString = %@",[str10 substringWithRange:NSMakeRange(4, 6)]); //subString = hao123
        

7.字符串查找

//字符串的查找
        NSString *str11 = @"bai du hello du world bai du";
        //返回一个结构体 返回子串在原字符串中的范围
        //
        NSRange range2 = [str11 rangeOfString:@"world"] ;
        if ( range2.location == NSNotFound )
        {
            NSLog(@"没有查找到该子串 NSNotFound = %li",NSNotFound) ;
            //NSNotFound 是long类型范围类的最大值
        }
        else
        {
            NSLog(@"查找到该子串, loction = %li length = %li",range2.location , range2.length);
        }
        

8.转大小写

        //转大写
        res = [str1 uppercaseString];
        NSLog(@"str1转大写为:%@",res);
        
        //转小写
        res = [str2 lowercaseString];
        NSLog(@"str2转小写为:%@",res);
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值