码迷,mamicode.com
首页 > 其他好文 > 详细

OC基础(22)

时间:2015-12-03 22:52:51      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:

NSMutableString基本概念

本小节知识点:

  1. 【理解】NSMutableString 基本概念
  2. 【理解】字符串中的可变和不可变

1.NSMutableString 基本概念

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

  • NSMutableString和NSString的区别

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

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

  • 不可变:指的是字符串在内存中占用的存储空间固定,并且存储的内容不能发生变化
    // 改变了指针的指向, 并没有修改字符串
    NSString *str = @"lnj";
    str = @"lmj";

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

 

NSMutableString常用方法

本小节知识点:

  1. 【理解】NSMutableString常用方法
  2. 【理解】字符串使用注意事项

1.NSMutableString常用方法

  • - (void)appendString:(NSString *)aString;
    • 拼接aString到最后面
 NSMutableString *strM = [NSMutableString string];
    NSLog(@"strM = %@", strM);
    [strM appendString:@"lnj"];
    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.520it.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.520it.com"];
    [strM insertString:@"http://" atIndex:0];
    NSLog(@"strM = %@", strM);
  • - (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;
    • 使用aString替换range范围内的字符串
    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练习

本小节知识点:

  1. 【理解】NSMutableString练习

1.NSMutableString练习

  • 从要求讲3个520it拼接在一起

  • 会生成很多新的字符串

    NSString *res = @"";
    NSString *subStr = @"520";
    // 1.拼接字符串

//    res = [res stringByAppendingString:subStr];
//    res = [res stringByAppendingString:@" "];
//
//    res = [res stringByAppendingString:subStr];
//    res = [res stringByAppendingString:@" "];
//
//    res = [res stringByAppendingString:subStr];
//    res = [res stringByAppendingString:@" "];

    for (int i = 0; i < 3; ++i) {
        res = [res stringByAppendingString:subStr];
        res = [res stringByAppendingString:@" "];
    }

    // 2.删除末尾的空格
//    res = [res stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    res = [res substringToIndex:res.length - 1];

    NSLog(@"res = |%@|", res);
  • 不会生成新的字符串
    NSString *subStr = @"520it";
    NSMutableString *res = [NSMutableString string];
    // 1.拼接字符串
    for (int i = 0; i < 3; ++i) {
        [res appendString:subStr];
        [res appendString:@" "];
    }
    // 2.删除空格
//    [res replaceCharactersInRange:NSMakeRange(res.length - 1, 1) withString:@""];
    [res deleteCharactersInRange:NSMakeRange(res.length - 1, 1)];
    NSLog(@"res = |%@|", res);

OC基础(22)

标签:

原文地址:http://www.cnblogs.com/zhoudaquan/p/5017656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!