美文网首页iOS基础学习
Objective-C基础学习之NSMutableString基

Objective-C基础学习之NSMutableString基

作者: WenJim | 来源:发表于2017-10-23 23:47 被阅读9次

    1.NSMutableString 基本概念

    • NSMutableString 类 继承NSString类,那么NSString 􏰀供的方法在NSMutableString中基本都可以使用,NSMutableString好比一个字符串链表,它可以任意的动态在字符串中添加字符 串 删除字符串 指定位置插入字符串,使用它来操作字符串会更加灵活。

    • NSMutableString和NSString的区别

      • NSString是不可变的, 里面的文字内容是不能进行修改的
      • NSMutableString是可变的, 里面的文字内容可以随时更改
      • NSMutableString能使用NSString的所有方法

    2.字符串中的可变和不可变

    • 不可变:指的是字符串在内存中占用的存储空间固定,并且存储的内容不能发生变化
       // 改变了指针的指向, 并没有修改字符串
        NSString *str = @"cwj";
        str = @"cwjLove";
    
        // 生成了一个新的字符串, 并没有修改字符串
        NSString *newStr = [str substringFromIndex:1];
        NSLog(@"str = %@", str);
        NSLog(@"newStr = %@", newStr);
    
    • 可变:指的是字符串在内存中占用的存储空间可以不固定,并且存储的内容可以被修改
        NSMutableString *strM = [NSMutableString string];
        NSLog(@"strM = %@", strM);
         // 修改原有字符串, 没有生成新的字符串
        [strM appendString:@"cwj"];
        NSLog(@"strM = %@", strM);
        [strM appendString:@" v587"];
        NSLog(@"strM = %@", strM);
    

    NSMutableString常用方法

    1.NSMutableString常用方法

    • -(void)appendString:(NSString *)aString;
      • 拼接aString到最后面
    NSMutableString *strM = [NSMutableString string];
        NSLog(@"strM = %@", strM);
        [strM appendString:@"cwj"];
        NSLog(@"strM = %@", strM);
    
    • -(void)appendFormat:(NSString *)format, ...;
      • 拼接一段格式化字符串到最后面
    NSMutableString *strM = [NSMutableString string];
    [strM appendFormat:@"/age is %i", 10];
    
    • -(void)deleteCharactersInRange:(NSRange)range;
      • 删除range范围内的字符串
        NSMutableString *strM = [NSMutableString stringWithString:@"http://www.xiaoningle.com"];
         // 一般情况下利用rangeOfString和deleteCharactersInRange配合删除指定内容
         NSRange range = [strM rangeOfString:@"http://"];
         [strM deleteCharactersInRange:range];
         NSLog(@"strM = %@", strM);
    
    • -(void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
      • 在loc这个位置中插入aString
        NSMutableString *strM = [NSMutableString stringWithString:@"www.xiaoningle.com"];
        [strM insertString:@"http://" atIndex:0];
        NSLog(@"strM = %@", strM);
    
    • -(void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;
      • 使用aString替换range范围内的字符串
        NSMutableString *strM = [NSMutableString stringWithString:@"http://www.xiaoningle.com/logo.png"];
        NSRange range = [strM rangeOfString:@"cwj"];
        [strM replaceOccurrencesOfString:@"cwj" withString:@"cwjL" options:0 range:range];
        NSLog(@"strM = %@", strM);
    

    2.字符串使用注意事项

    • @”cwj”这种方式创建的字符串始终是NSString,不是NSMutalbeString.所以下面的代码创建的还是NSString,此时使用可变字符串的函数,无法操作字符串。
    NSMutalbeString *s1 = @”cwj”;
    // 会报错
    [strM insertString:@"my name is " atIndex:0];
    

    相关文章

      网友评论

        本文标题:Objective-C基础学习之NSMutableString基

        本文链接:https://www.haomeiwen.com/subject/kyhauxtx.html