objective-c系列-NSMutableString,objective-c

來源:互聯網
上載者:User

objective-c系列-NSMutableString,objective-c

**********************************************

NSMutableString為NSString的子類,除了父類的方法,NSMutableStirng還有一些增刪改和替換的方法

**********************************************

構造方法

新增的一個構造方法:

NSMutableString *mstring = [[ NSMutableString alloc]initWithCapacity:100];

    //注意事項:

        // 定義一個指標

        NSMutableString *mstr;

//        mstr=@"abc";  //mstr指向了常量,所以是不可變

mstr = [[NSString alloc] init];// 這樣子是開闢的不可變字串空間,也是不可變字串

mstr = [[NSMutableStirng alloc] init];// 這樣子就可變了

同理:

NSString str = [[NSMutableString alloc] init];// str也是可變字串哦!

**********************************************

// 增

    NSMutableString *mstr = [[NSMutableString alloc]init];

    //往字串mstr尾部追加一個格式串

    [mstr appendFormat:@"[a=%i]-[c=%c]-[s=%s]",123,'x',"cstring" ];

    NSLog(@"mstr: %@",mstr);

    NSLog(@"mstr的長度為: %lu", [mstr length]);

    

    //往字串mstr尾部追加一個oc字串,  對應c中的strcat

    [mstr appendString:@"-[appendString]"];

    NSLog(@"mstr: %@",mstr);

    NSLog(@"mstr的長度為: %lu", [mstr length]);

**********************************************

// 刪

    NSMutableString *mstr = [[ NSMutableString alloc]initWithString:@"123abc123abc"];

    

    NSLog(@"before delete, mstr: %@, mstr的長度為:%lu", mstr,[mstr length]);

    //指定範圍刪除

    [mstr deleteCharactersInRange:NSMakeRange(9, 3)];

    NSLog(@"after delete,  mstr: %@, mstr的長度為:%lu", mstr,[mstr length]);

    

    //先尋找得到範圍,再根據這個範圍去刪除

    //  mstr的內容為:  123abc123

    //  在mstr中找abc的範圍,應該返回一個結構體 {3,3}

    //  再將這個結構體傳入 deleteCharactersInRange:方法,完成對abc的刪除

    [mstr deleteCharactersInRange:[mstr rangeOfString:@"abc"]];

    NSLog(@"第二次刪除abc之後,  mstr: %@, mstr的長度為:%lu", mstr,[mstr length]);

    

    //問題1:如何刪除在字串中多次出現的子串?

 // 問題2:如何替換在字串中多次出現的子串?

    //      1,迴圈處理

    [mstr appendString:@"abc123abc123abc123"];

    NSLog(@"追加一個abc123...之後,  mstr: %@, mstr的長度為:%lu", mstr,[mstr length]);

    //  mstr中有三個abc子串

    printf("NSNotFound=%lu\n",NSNotFound);

    while (1) {

        NSRange range=[mstr rangeOfString:@"abc"];

        if (range.location==NSNotFound) {

            break;

        }

        [mstr deleteCharactersInRange:range];

//    [mstr replaceCharactersInRange:[mstr rangeOfString:@"123"] withString:@"woca"];

    }

    NSLog(@"在迴圈中刪除abc之後,  mstr: %@, mstr的長度為:%lu", mstr,[mstr length]);

    

    //用一個新字串替換原來字串中的某個範圍內的字元

    [mstr replaceCharactersInRange:NSMakeRange(2, 1) withString:@"[replace]"];

    NSLog(@"在替換方法調用之後,  mstr: %@, mstr的長度為:%lu", mstr,[mstr length]);

 

    //在某個下標處插入一個字串

    [mstr insertString:@"[insertString]" atIndex:1];

    NSLog(@"在插入方法調用之後,  mstr: %@, mstr的長度為:%lu", mstr,[mstr length]);

    

    //設定字串

    [mstr setString:@"[this is setString]"];

    NSLog(@"在setString方法調用之後,  mstr: %@, mstr的長度為:%lu", mstr,[mstr length]);

**********************************************

 

**********************************************

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.