GeekBand-OC中的字符串

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内存
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容