博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
objective-c系列-NSMutableString
阅读量:6771 次
发布时间:2019-06-26

本文共 2572 字,大约阅读时间需要 8 分钟。

**********************************************

NSMutableString为NSString的子类,除了父类的方法,NSMutableStirng还有一些增删改和替换的方法

**********************************************

构造方法

新增的一个构造方法:

NSMutableString *mstring = [[ NSMutableString alloc]initWithCapacity:100];

    //注意事项:

        // 定义一个指针

        NSMutableString *mstr;

//        mstr=@"abc";  //mstr指向了常量,所以是不可变

mstr = [[NSString alloc] init];// 这样子是开辟的不可变字符串空间,也是不可变字符串

mstr = [[NSMutableStirng alloc] init];// 这样子就可变了

同理:

NSString str = [[NSMutableString alloc] init];// str也是可变字符串哦!

**********************************************

// 增

    NSMutableString *mstr = [[NSMutableString alloc]init];

    //往字符串mstr尾部追加一个格式串

    [mstr appendFormat:@"[a=%i]-[c=%c]-[s=%s]",123,'x',"cstring" ];

    NSLog(@"mstr: %@",mstr);

    NSLog(@"mstr的长度为: %lu", [mstr length]);

    

    //往字符串mstr尾部追加一个oc字符串,  对应c中的strcat

    [mstr appendString:@"-[appendString]"];

    NSLog(@"mstr: %@",mstr);

    NSLog(@"mstr的长度为: %lu", [mstr length]);

**********************************************

// 删

    NSMutableString *mstr = [[ NSMutableString alloc]initWithString:@"123abc123abc"];

    

    NSLog(@"before delete, mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

    //指定范围删除

    [mstr deleteCharactersInRange:NSMakeRange(93)];

    NSLog(@"after delete,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

    

    //先查找得到范围,再根据这个范围去删除

    //  mstr的内容为:  123abc123

    //  mstr中找abc的范围,应该返回一个结构体 {3,3}

    //  再将这个结构体传入 deleteCharactersInRange:方法,完成对abc的删除

    [mstr deleteCharactersInRange:[mstr rangeOfString:@"abc"]];

    NSLog(@"第二次删除abc之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

    

    //问题1:如何删除在字符串中多次出现的子串?

 // 问题2:如何替换在字符串中多次出现的子串?

    //      1,循环处理

    [mstr appendString:@"abc123abc123abc123"];

    NSLog(@"追加一个abc123...之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

    //  mstr中有三个abc子串

    printf("NSNotFound=%lu\n",NSNotFound);

    while (1) {

        NSRange range=[mstr rangeOfString:@"abc"];

        if (range.location==NSNotFound) {

            break;

        }

        [mstr deleteCharactersInRange:range];

//    [mstr replaceCharactersInRange:[mstr rangeOfString:@"123"] withString:@"woca"];

    }

    NSLog(@"在循环中删除abc之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

    

    //用一个新字符串替换原来字符串中的某个范围内的字符

    [mstr replaceCharactersInRange:NSMakeRange(21withString:@"[replace]"];

    NSLog(@"在替换方法调用之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

 

    //在某个下标处插入一个字符串

    [mstr insertString:@"[insertString]" atIndex:1];

    NSLog(@"在插入方法调用之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

    

    //设置字符串

    [mstr setString:@"[this is setString]"];

    NSLog(@"setString方法调用之后,  mstr: %@, mstr的长度为:%lu", mstr,[mstr length]);

**********************************************

 

**********************************************

转载于:https://www.cnblogs.com/hyuganatsu/p/NSMutableString.html

你可能感兴趣的文章
我的友情链接
查看>>
javascript时间格式化
查看>>
Spring MVC基础
查看>>
JavaScript权威指南笔记
查看>>
android启动activity文本框不获得焦点
查看>>
linux运维实战练习-2015年8月30日课程作业(练习)安排
查看>>
给新手的最佳类Windows界面的Linux发行版
查看>>
Centos7下按照配置nexus2
查看>>
第13章 使用Bind提供域名解析服务
查看>>
我的友情链接
查看>>
Centos7 mount/ rpm/ yum 软件仓库搭建
查看>>
EC2上源安装vnstat
查看>>
高性能Web服务之varnish应用详解及实战应用
查看>>
我的友情链接
查看>>
CentOS 6网卡名称修改 以及 centos7 采用传统命名方式
查看>>
Maven 中的jar包冲突
查看>>
lvs基于fwm定义集群服务
查看>>
awk 系列Part3:如何使用 awk 按模式筛选文本或字符串
查看>>
用cxfreeze打包Python3.3成exe文件
查看>>
关于c语言内存地址对齐的一点思考
查看>>