美文网首页
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中的字符串

    NSString是一个Unicode编码,16位字符的字符序列。NSString继承于NSObject,引用类型,...

  • GeekBand-OC中的ARC

    自动引用计数(Automatic Reference Counting)是Objective-C默认的内存管理机制...

  • GeekBand-OC中的集合类型

    NSArray和NSMutableArray 数组是一个有序的元素序列,支持随机存取。索引从0开始,索引越界会抛出...

  • GeekBand-OC中的类别和协议

    类别(category)——通过使用类别,我们可以动态地为现有的类添加新方法,而且可以将类定义模块化地分不到多个相...

  • GeekBand-OC类型成员

    类型成员的分类 数据成员(描述对象的状态)实例变量、属性 函数成员(描述对象行为)方法、初始化器、析构器 数据成员...

  • JavaScript中的字符串

    @(javascript)[js字符串][toc] JavaScript中的字符串 字符串是JavaScript中...

  • 正则中的字符串

    一、字符串 2.字符串中的API 所有字符串中的API都无权修改原字符串,必须返回新字符串

  • Swift第二课

    一.字符串 在OC中字符串类型是NSString,在swift中字符串类型是String OC中字符串@"",sw...

  • Swift笔记<三>字符串

    1.字符串的基本使用 OC与Swift中字符串的区别OC中字符串类型是NSString,Swift中字符串类型是S...

  • Swift--字符串--02

    字符串基础 字符串在OC与Swift中的区别:在OC中字符串类型是NNString,在Swift中字符串类型是St...

网友评论

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

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