美文网首页iOS
NSMutableString基本概念

NSMutableString基本概念

作者: 越天高 | 来源:发表于2019-02-26 15:40 被阅读9次

NSMutableString 基本概念

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

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

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

  • 不可变:指的是字符串在内存中占用的存储空间固定,并且存储的内容不能发生变化
    // 改变了指针的指向, 并没有修改字符串
 NSString *str = @"sll"; // 一开始str指向@"sll"对应的内存
        NSLog(@"%p", str);
        str = @"shl"; // 修改了str指针的指向, 让它指向@"shl"对应的内存
        NSLog(@"%p", str);
  • 可变:指的是字符串在内存中占用的存储空间可以不固定,并且存储的内容可以被修改
NSMutableString *strM = [NSMutableString string];
    NSLog(@"strM = %@", strM);
     // 修改原有字符串, 没有生成新的字符串
    [strM appendString:@"lll"];
    NSLog(@"strM = %@", strM);
    [strM appendString:@"ssw"];
    NSLog(@"strM = %@", strM);

NSMutableString常用方法

1.NSMutableString常用方法

  • 拼接aString到最后面
- (void)appendString:(NSString *)aString;

NSMutableString *strM = [NSMutableString string];
    NSLog(@"strM = %@", strM);
    [strM appendString:@"xxx"];
    NSLog(@"strM = %@", strM);
  • 删除range范围内的字符串
- (void)deleteCharactersInRange:(NSRange)range;
NSMutableString *strM = [NSMutableString stringWithString:@"http://www.520it.com"];
     // 一般情况下利用rangeOfString和deleteCharactersInRange配合删除指定内容
     NSRange range = [strM rangeOfString:@"http://"];
     [strM deleteCharactersInRange:range];
     NSLog(@"strM = %@", strM);
  • 在loc这个位置中插入aString
- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;

    NSMutableString *strM = [NSMutableString stringWithString:@"www.xxxs.com"];
    [strM insertString:@"http://" atIndex:0];
    NSLog(@"strM = %@", strM)
  • 使用aString替换range范围内的字符串
- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;
    NSMutableString *strM = [NSMutableString stringWithString:@"http://www.520it.com/lnj.png"];
    NSRange range = [strM rangeOfString:@"lnj"];
    [strM replaceOccurrencesOfString:@"lnj" withString:@"jjj" options:0 range:range];
    NSLog(@"strM = %@", strM);

2.字符串使用注意事项

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

相关文章

网友评论

    本文标题:NSMutableString基本概念

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