object-c中NSString的常见操作

 

       object-c中所有的数据类型都是一个对象,创建对象都需要首先使用alloc在堆空间给对象分配一块空间。这个空间大概为200个字节左右,所以使用alloc 创建对象一定要释放对象,当然现在的 xcode版本是不需要你手动释的,作为初学者不需要堆内存管理理解太深,但是你应该知道什么是内存管理,知道内存管理里面的黄金法则到底是什么。

//本篇文章针对初学者,怎么使用NSString/NSSMutableString字符串创建对象, 使用对象的方法。


 


一.NSString           

   实例化的方法

//1. 通过字符串对象实例化对象 initWithString

NSString *nsstr=@"abcd"; //*nsstr是一个字符串指针,

        NSString *str=[[NSStringalloc]initWithString:nsstr];

        NSLog(@"str=%@",str);

     

        //2. 通过从c语言的字符串创建一个对象实例方法---stringWithUTF8String

        char *c="abcdef";

        NSString *str=[[NSStringalloc]initWithUTF8String:c];

        NSLog(@"str=%@",str);


       // 类方法---通过从c语言的字符串创建一个对象-NSStringstringWithUTF8String

        char *c="abcdef";

        NSString *str=[NSStringstringWithUTF8String:c];

        NSLog(@"str=%@",str);

      

        //3. 格式化方法创建字符串对象--stringWithFormat

        int s1=100;

        char *s2="abc";

        NSString *str1=@"def";

        NSString *str=[[NSStringalloc]initWithFormat:@"%i%s%@",s1,s2,str1];

        NSLog(@"str%@",g);

 

        //类方法格式化创建字符串对象---stringWithFormat

         int s1=100;

        char *s2="abc";

        NSString *str1=@"def";

         NSString  *str=[NSStringstringWithFormat:@"%i%s%@",s1,s2,str1];

         NSLog(@"str=%@",str);

      

       

       //4.获取字符串的长度

        NSLog(@"%lu",[str1 length]); //获取字符串对象的长度。无符号整形。


       //思考.字符串对象的遍历      

     NSLog(@"%c",[str1 characterAtIndex:0]);

          for(long i=0;i<[str1 length];i++)

         {

             NSLog(@"%c",[str1 characterAtIndex:i]);

         }


         //5.判断字符串是否相等

       //返回一个BOOL类型。可以用li打印出来,相等返回1  不等返回0

        NSLog(@"%i",[str1 isEqualToString:str2]);


        //6.字符串的比较

      

        NSLog(@"%li",[str1 compare:str2]);

        //compare 返回三个值,-101

        // NSOrderedSame;      0相等

        //NSOrderedAscending;  1升序

        //NSOrderedDescending; 1 降序

       

        //7.字符串中查找字符串

        NSRange rg=[str1 rangeOfString:@"a"];

        //rg.length;   NSNotFound 没有找到

        //rg.location; 字符串所在的小标

        NSLog(@"location=%zi,length=%zi",rg.location,rg.length);

       

        NSLog(@"是否有后缀=%i",[str3hasPrefix:@"txt"]);

       

        //8.对象转整形   intValue

        NSString *str4=@"100";

        NSLog(@"对象转换为整形%i",[str4intValue]);

       

        //9.大小写转化  uppercaseString  lowercaseString

        NSString *str5=@"abc";

         NSString *str6=@"ABC";

        NSLog(@"小写abc转大写%@",[str5 uppercaseString]);

          NSLog(@"大写ABC转小写%@",[str5 lowercaseString]);

       

       // 10.找字符串对象下表对应的元素characterAtIndex,遍历字符串使用比较多characterAtIndex

        //将传入的字符串逆序

        //比如输入@"abcdef"输出@"fedcba"

        NSString *str7=@"abcdef";

        NSLog(@"这是字符串的逆序!");

        for (long i=[str7 length]-1; i>=0; i--)

        {

           

            printf("%c",[str7 characterAtIndex:i]);

        }

         

       

        //11.字符串中查找字符串

         //返回的是一个NSrange类型。

        //

        //typedef struct _NSRange {

          //NSUInteger location;  下标位置

         //   NSUInteger length;   长度

       // } NSRange;

        NSRange rg=[nsstr1 rangeOfString:@"a"];

        //rg.length;     NSNotFound 没有找到

        //rg.location; 字符串所在的小标

        NSLog(@"location=%zi,length=%zi",rg.location,rg.length);

        NSLog(@"location=%zilength=%zi",[nsstr1 rangeOfString:@"a"].location,[nsstr1 rangeOfString:@"a"].length);

       

       

        //12.查找字符串对象是否含有后缀hasPrefix, hasSuffix

        //返回bool类型

        NSString *nsstr3=@"abcde.txt";

        NSLog(@"是否有前缀=%i",[nsstr3hasPrefix:@"abc"]);

        NSLog(@"是否有后缀=%i",[nsstr3hasSuffix:@"txt"]);

       

        //13.字符串对象转整形   intValue

        //字符串对象转浮点型floatValue

        //字符串对象转双精度浮点型 doubleValue

        //字符串对象转长整形longLongValue

        NSString *nsstr4=@"100";

        [nsstr4 doubleValue];

        [nsstr4 longLongValue];

        [nsstr4 floatValue];

       

       

        NSLog(@"对象转换为整形%i",[nsstr4intValue]);

         NSLog(@"对象转换为浮点型%f",[nsstr4floatValue]);

        NSLog(@"对象转换为浮点型%lf",[nsstr4 doubleValue]);

        NSLog(@"对象转换为长整形%li",[nsstr4 longLongValue]);

       

        //14.将字符串的每个首字母转化为大写的字母capitalizedString

        //返回一个字符串指针

       NSString *nsstr8=@"abc  defg";

        NSLog(@"首字母转化为大写%@", [nsstr8 capitalizedString] );

       

        //15.截取字符串substringFromIndex

        NSString *nsstr9=@"abcdef";

        //从当前位置下标开始,直到结尾.

        NSLog(@"截取字符串1%@", [nsstr9 substringFromIndex:3]);

       

        // 从头部开始,直到当前下标的前一个字符substringWithRange

        NSLog(@"截取字符串2%@",[nsstr9 substringToIndex:3]);

        //截取字符串范围substringWithRange

        NSRange rang=  NSMakeRange(1, 3);

       

        NSLog(@"截取字符串3%@",[nsstr9 substringWithRange:rang]);

       

        //16字符串的分割(componentsSeparatedByString

        NSString *nsstr10=@"a,b,c,d";

         NSArray *array= [nsstr10 componentsSeparatedByString:@","];

        //遍历数组

        //arraycount数组的长度

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

         

            NSLog(@"%@",[array objectAtIndex:i]);

       }

 

        //16.stringWithContentsOfFile)文件操作,读取磁盘txt文件

        NSString *str11=[NSStringstringWithContentsOfFile:@"/Users/student/Desktop/helloworld.txt"encoding: NSUTF8StringEncoding  error:nil];

        NSLog(@"读取磁盘文件%@",str11);

       

        //17.抓取网页

        NSURL *url=[[NSURLalloc]initWithString:@"http://192.168.88.8/JudgeOnline-new/index.php?c=index&a=center"];

        NSString *str13=[NSStringstringWithContentsOfURL:url encoding:NSUTF8StringEncodingerror:nil];

        NSLog(@"抓取网页的内容%@",str13);

       


       二.1.NSMutableString 可变字符串操作,可变字符串操作是没有返回值的。

        //NSMutableString 是一个可变的字符串对象。

        NSMutableString *nsstr14=[[NSMutableStringalloc] init];

           nsstr14.string=@"abcdef";

         [nsstr14 appendString:@"  def"];

        NSLog(@"str14=%@",nsstr14);


       

       

     

        //2.删除可变字符串deleteCharactersInRange

        //删除范围

        [nsstr14 deleteCharactersInRange:NSMakeRange(2, 3)];

        NSLog(@"删除字符串对象%@", nsstr14);

       

       

        //3.stringWithCapacity 给予预留空间

        NSMutableString *nsstr15=[NSMutableStringstringWithCapacity:10];

          constchar *c="abc";

          NSMutableString *nsstr16=[[NSMutableStringalloc]initWithCString:c encoding:NSUTF8StringEncoding];

          NSLog(@"%@",nsstr6);

       

        //  NSMutableString

        NSMutableString *nsstr17=[[NSMutableStringalloc]

                        initWithString:nsstr16];

       

      

        //4.字符串的拼接stringByAppendingString

        NSMutableString *nsstr18=[[NSMutableStringalloc]initWithFormat:@"%i",100];

        //nsstring字符串对象的拼接.

        NSString *nsstr19=@"helloworld";

        NSString *nsstr20=[nsstr19 stringByAppendingString:@"nihaoa"];

        NSLog(@"%@",nsstr20);

   

         //5.字符串的替换

        NSString *nsstr21=[nsstr20 stringByReplacingOccurrencesOfString:@"ell"withString:@"koo"];

        NSLog(@"字符的替换%@",nsstr21);

       

        [nsstr20 stringByReplacingOccurrencesOfString:@"el"withString:@"kk"options:NSCaseInsensitiveSearchrange: NSMakeRange(1,2)];

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值