1. 程式人生 > >字串和可變字串

字串和可變字串

一、字串的初始化方式

1.不常使用的初始化

   方法一

    NSString *string = [[NSString alloc] init];

    方法二

     NSString *string1 = [[NSString alloc] initWithString:string];//初始化同時賦值

     示例:NSString *string1 = [[NSString alloc] initWithString:@“鄒賢”];

2.常使用的初始化

       方法一

       NSString *string = [NSString string];

        方法二

        NSString *string1 = @“value”;//初始化的同時並賦值

        示例:NSString *string1 = @“鄒賢”

3.字串處理

 1)字串的格式化處理

  NSString *name = [NSString stringWithFormat:<#(NSString *), …#>];

 int age = 18;

 NSString *string = [[NSString alloc]initWithFormat:@“%d",age];

2)從哪個位置開始擷取字串(擷取哪一個位置的字串)

   NSString *name1 = [name substringFromIndex:<#(NSUInteger)#>];

//Index不是下標,所以不是從0開始

3)擷取字串到那個位置

    NSString *name2 = [name substringToIndex:<#(NSUInteger)#>];

 4)擷取字串從哪到哪的值

        在開始學習這個知識點以前先讓我們回顧一下結構體的使用方法:

         結構體的關鍵字是struct,我們可以把它看成一個整體,它是由不同資料型別組成的一個整體。結構如下:

           typedef struct Person {

                   int age; //定義一個整型型別的年齡

                   char *name;

//定義一個字元型別的名字

            }Person;

注意:在結構體裡面我們一般是定義某個類的所有型別,在定義完後是以分號結束,而不是像列舉型別是以逗號結束。

  使用方法:

           Person peson;//這裡Person是一個型別

           peson.age = 20;

           peson.name = "大白";

  A.結構體是對事物的一個抽象

         NSRange range;

     A.a:定義range結構體的位置

        range.location = 6;//這裡是從字串的第6個位置開始

  A.b:在這個位置的基礎之上 繼續數幾個長度

         range.length = 5;

   NSString *name3 = [name substringWithRange:range]);

擷取字串從到哪新方法

  NSString *res = [message substringWithRange:NSMakeRange(6, 5)];

  NSLog(@"Chars from index 6 through 5: %@", res);

  5)把字串通過指定字元分割成陣列

      NSString *result = @"武松打虎 duang!duang!duang! 老虎跑下山 ya~ya~ya~";

      NSArray *wordList = [result componentsSeparatedByString:@" "];

//通過快速遍歷把數組裡的內容遍歷出來

       for (NSString *obj in wordList) {

       NSLog(@"%@", obj);

            }

     6)英文字母轉換

      a. // 把所有英文字母 轉成大寫

        NSString *word = @"zouXian";

        NSLog(@"%@", word.uppercaseString);

         ZOUXIAN

       b.// 把所有英文字母 轉成小寫

        NSLog(@"%@", word.lowercaseString);

        zouxian

         c. //把英文字母首字母 轉成大寫

        NSLog(@"%@", word.capitalizedString);

        Zouxian

        7)拼接字串

//拼接字串

        NSString *ss = @"我是";

        NSString *ss1 = @"好人";

方法一

          // 1、stringWithFormat

          NSLog(@"%@", [NSString stringWithFormat:@"%@中國%@", ss, ss1]);

我是中國好人

方法二

          // 2.stringByAppendingString

          NSLog(@"%@", [ss stringByAppendingString:ss1]);

  我是好人

方法三

         // 3.stringByAppendingFormat

        NSLog(@"%@", [ss stringByAppendingFormat:@"%@不止一天兩天三四天", ss1]);

我是好人不止一天兩天三四天

8)查詢字串

// 4.判斷字串 是否包含某個字串

        NSString *name = @"上山打老虎跑了";

        NSRange range = [name rangeOfString:@“老虎”];

        if((range119.location |= NSNotFound)){//通過查詢位置資訊來查詢需要查詢字串的資訊

             NSLog(@"%@", name);

        }else {

            NSLog(@"騙人~~~~");

        }

9) a.判斷字串以什麼開始(字串的頭部包含什麼內容)

        if ([name hasPrefix:@"上山"] != NO) {

         NSLog(@"%hhd", YES);//如果判斷為真,則輸出1

        }else{

            NSLog(@"%hhd", NO);//如果判斷為假,則輸出0

        }

     b.字串以什麼結束(字串的尾部包含什麼內容)

        if([sss hasSuffix:@"走了"] != NO){

            NSLog(@"%hhd", YES);//如果判斷為真,則輸出1

        }else{

            NSLog(@"%hhd", NO);//如果判斷為假,則輸出0

        }

二、可變字串

類名: NSMutableString

1.把指定位置的字串 替換成另一個字串

NSRange range;

     range.location = 2;

     range.length = 4;   

NSMutableString *hero = [[NSMutableString alloc]initWithString:@"我是德瑪西亞"];

[hero replaceCharactersInRange:range withString:@"麥林炮手"];

        NSLog(@"%@", hero);

2. 刪除指定長度的字串

        range.location = 0;

        range.length = 2;

       [herodeleteCharactersInRange:range];

        NSLog(@"%@", hero);