NSMutalbleString

NSMutalbleString

NSMutableString和NSString的区别

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

什么是可变字符串?什么是不可变字符串?

  • 不可变字符串:指的是字符串在内存中占用的存储空间固定,并且存储的内容不能发生变化
  • 可变字符串:指的是字符串在内存中占用的存储空间可以不固定,并且存储的内容可以被修改

 

NSMutalbleString常用方法

对可变字符串增删改查

NSMutableString *strM = [NSMutableString stringWithFormat:@"www.520it.com.520"];

 

 

在字符串后面添加一段字符串

[strM appendString:@"/image"];
[strM appendFormat:@"/age is %i", 10];
NSLog(@"strM = %@", strM);

 

 

如何删除字符串中的520?

技巧: 在开发中, 我们经常利用rangeOfString和deleteCharactersInRange方法配合起来删除指定的字符串

  1. 先查找出520在字符串中的位置
    NSRange range = [strM rangeOfString:@"520"];

     

  2. 删除520
    [strM deleteCharactersInRange:range];
    NSLog(@"strM = %@", strM);

     

如何在520前面插入love这个单词

// insertString : 需要插入的字符串
// atIndex: 从哪里开始插入
NSRange range = [strM rangeOfString:@"520"];
[strM insertString:@"love" atIndex:range.location];
NSLog(@"strM = %@", strM);

 

 

问题4:如何将字符串中的520替换为530?

答:

  • 注意: 如果是调用NSString的字符串替换方法, 不会修改原有字符串, 而是生产一个新的字符串
   NSString *newStr =[strM stringByReplacingOccurrencesOfString:@"520" withString:@"530"];

注意:

  • 一般情况下OC方法要求传入一个参数如果没有*, 大部分都是枚举
  • 一般情况下如果不想使用枚举的值, 可以传入0, 代表按照系统默认的方式处理
/*
 OccurrencesOfString: 需要替换的字符串
 withString: 用什么替换
 options: 替换时的搜索方式
 range: 搜索的范围
 返回值: 代表替换了多少个字符串
 */
NSUInteger count = [strM replaceOccurrencesOfString:@"520" withString:@"530" options:0 range:NSMakeRange(0, strM.length)];
NSLog(@"strM = %@", strM);
NSLog(@"count = %lu", count);

 

 

18.NSMutalbleString练习

理解可变和不可变字符串的区别,和方法的使用

问题1:拼接字符串有几种方法?

答:

需求: 将3个520it拼接在一起, 中间用空格隔开 520it 520it 520it

NSString *subStr = @"520it";

方法一:

// 520it-

NSString *newStr = [subStr stringByAppendingString:@" "];

// 520it-520it

newStr = [newStr stringByAppendingString:subStr];

// 520it-520it-

newStr = [newStr stringByAppendingString:@" "];

// 520it-520-520it

newStr = [newStr stringByAppendingString:subStr];

 

 

方法二:

  • 注意: 在开发中如果需要对字符串进行频繁的操作, 不要使用不可变的字符串
         
    
    NSString *newStr = [subStr stringByAppendingString:@" "];;
    for (int i = 0; i < 2; ++i) {
        newStr = [newStr stringByAppendingString:subStr];
        newStr = [newStr stringByAppendingString:@" "];
    }
    
    // newStr = [newStr stringByReplacingCharactersInRange:NSMakeRange(newStr.length -1 , 1) withString:@""];
    newStr = [newStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    NSLog(@"newStr = |%@|", newStr);

     

方法三:

// 创建一个空得字符串

NSMutableString *strM  = [NSMutableString string];
for (int i = 0; i < 3; ++i) {
    // 1.添加一个520it
    [strM appendString:subStr];
    // 2.添加一个空格
    [strM appendString:@" "];
}
[strM deleteCharactersInRange:NSMakeRange(strM.length - 1, 1)];
NSLog(@"strM = |%@|", strM);

 

posted @ 2015-11-26 19:24  a滴答  阅读(213)  评论(0编辑  收藏  举报