美文网首页
GeekBand-OC中的字符串

GeekBand-OC中的字符串

作者: swuzjb | 来源:发表于2016-03-02 20:34 被阅读48次

    NSString是一个Unicode编码,16位字符的字符序列。
    NSString继承于NSObject,引用类型,拷贝时具有引用语义。

    初始化方法

    1. 字面常量初始化
      NSString* s1 = @"hello world";
    2. 初始化器方法
      NSString *str2 = [[NSString alloc]initWithCString:"Hello World!" encoding:NSUTF8StringEncoding];
    3. 工厂方法
      NSString *str3 = [NSString stringWithCString:"Hello World!" encoding:NSUTF8StringEncoding];

    NSString拥有恒定性,所有的操作无法更改字符串本身,如有更改都是以返回新值的方式实现的。同时,NSString拥有共享机制,ARC对其有特殊的管理规则。

    NSString常用操作

        str1 = str1.uppercaseString;//大写
        str1 = str1.lowercaseString;//小写
        str1 = str1.capitalizedString;//首字母大写
        //搜索方法,判断是否存在Hello
        NSRange range = [str1 rangeOfString:@"Hello"];
        NSLog(@"location: %lu, length:%lu",range.location,range.length);
        //字符串截取
        NSString* substr = [str1 substringFromIndex:6];
        //是否以Hello为前缀
        BOOL yOrN = [str1 hasPrefix:@"Hello"];
        // 格式化字符串
        NSString* format=[NSString stringWithFormat:@"[%d, %d]",100,200];
    

    NSMutableString,可变字符串相较于NSString具有可变性。NSMutableString是NSString的子类。

    • 工厂初始化
      NSMutableString *mustr1 = [NSMutableString stringWithString: @"Hello,World!"];

    • 常用方法
      //合理指定capacity可以有效提高效率
      NSMutableString *mustr3 =[NSMutableString stringWithCapacity:100];
      //追加字符串
      [mustr3 appendString:@"Hello Objective"];
      //插入字符串
      [mustr3 insertString:@"-C" atIndex:mustr3.length];
      //更改
      [mustr3 setString:@"Hi Objective"];
      //替换
      NSRange replaceRange = NSMakeRange(0, 2);
      [mustr3 replaceCharactersInRange:replaceRange withString:@"Hello"];
      //删除
      NSRange deleteRange = NSMakeRange(5, 10);
      [mustr3 deleteCharactersInRange:deleteRange];

    NSString内存 NSMutableString内存

    相关文章

      网友评论

          本文标题:GeekBand-OC中的字符串

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