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)];

    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章