博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC本学习笔记Foundation框架NSString与NSMutableString
阅读量:5861 次
发布时间:2019-06-19

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

 
 
一、NSString与NSMutableString
        相信大家对NSString类都不陌生。它是OC中提供的字符串类。它的对象中的字符串都是不可变的,而它的子类NSMutableString类的对象中的字符串就是可变的。

什么是可变与不可变呢?二者的差别就是在已经创建的一个字符串对象中,在程序中能不能更改字符串。比方拼接新的字符串。可变的能够在原字符串中更改,不可变的不能更改。

二、关于字符串的创建
        1> OC字符串的创建小桥前面都已经用过。最简单就是以下这个:
// OC字符串的创建    NSString *str1 = @"葬花 桥";
        2> 创建的一个字符串中要带有格式化的拼接字符串。能够这样:

// 格式化一个字符串    NSString *str2 = [[NSString alloc] initWithFormat:@"我的名字叫:%@--%d岁了", @"葬花 桥", 120];

NSString *str2 = [[NSString alloc] initWithFormat:@"我的名字叫:%@--%d岁了", @"葬花 桥", 120];
   3> C字符串与OC字符串的相互转换

// C字符串转换成OC字符串    NSString *str3 = [[NSString alloc] initWithUTF8String: "葬花 桥"];        // OC字符串转换成C字符串    const char *s = [str3 UTF8String];

         4> 以文件内容初始化字符串:

// 以文件内容来初始化字符串NSString *str4 = [[NSString alloc] initWithContentsOfFile:@"/Users/souhanaqiao/Desktop/soubanaqiao.txt" encoding:NSUTF8StringEncoding error:nil];

这一句后,str4中的字符串就是文件soubanaqiao.txt中的内容了,能够看下载图:

小桥认为这就是OC中读取文件。上面的代码仅仅能读取本地的文件内容,还有万能的,既能读本地的也能读网络上的

NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/souhanaqiao/Desktop/soubanaqiao.txt"]; NSString *str5 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

当中NSURL是OC中的资源地址类。它的对象表示的是一个资源的路径,无论是本地的还是网络的,可是本地与网络的协议不同,本地是file,网络的有http。有ftp等等。MJ老师说能够把百度网页的文本内容读取进来,小桥这里试试:

NSURL *baidu = [[NSURL alloc] initWithString:@"http://www.baidu.com"];NSString *str6 = [[NSString alloc] initWithContentsOfURL:baidu encoding:NSUTF8StringEncoding error:nil];

以上的字符串创建方法大部分都有类方法,如:

// [NSString stringWithFormat:<#(NSString *), ...#>]

    // [NSString stringWithUTF8String:<#(const char *)#>]

    // [NSString stringWithContentsOfFile:<#(NSString *)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>]

 
三、写入字符串到文件
        NSString有个对象方法 writeToFile是把字符串写入到文件里,

NSString *str1 = @"桥";    // 将OC字符串写入到文件里,假设路径存在但文件不存在就创建文件    [str1 writeToFile:@"/Users/souhanaqiao/Desktop/wang.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil]; 

        这种方法会在路径中创建一个wang.txt文件并把str1的字符串写入到文件里,当然还能够用url,

// 将str1字符串写入到url中    NSURL *url = [NSURL URLWithString:@"file:///Users/souhanaqiao/Desktop/wang2.txt"];    [str1 writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];

三、NSMutableString
        NSMutableString类是NSString的子类。所以它的字符串对象的创建方法同样,当然它也有自己独有的方法。这些方法与它的可变字符串相关。以下小桥创建一个要可变的字符串:
// 创建可变字符串    NSMutableString *str1 = [[NSMutableString alloc] initWithFormat:@"小桥正在学习OC"];
         这里的可变字符串不能用 @"" 来直接创建。由于 @""创建的字符串对象是不可变的,也即是NSString类型的。既然是可变字符串,那么str1中能够添加字符串,如:
// 拼接一个字符串到str1后面    [str1 appendString:@"今天天气不好"];
调用append方法在str1字符串的后面加上了一个字符串,那么如今str1中的字符串就为 小桥正在学习OC今天天气不好
能够拼接一个。当然也能够删除str1中的某个字符串。如:

NSRange range = [str1 rangeOfString:@"正在学习"]; // 找到 正在学习 的范围[str1 deleteCharactersInRange:range]; // 删除正在学习

这里的NSRange是一个结构体。里面有两个成员,一个是下标一个是长度。

       

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
重庆银行推出大数据信贷产品
查看>>
Oculus创始人面临窃取商业机密指控
查看>>
传Snapchat已递交IPO申请 拟至多融资40亿美元
查看>>
美国OTA更新《物联网信任框架》:未来物联网认证计划的基础
查看>>
制造业原材料价格上涨 安防设备涨还是不涨?
查看>>
硬盘都白菜价了,可我们连卖“白菜”都不够格
查看>>
ARM发力物联网
查看>>
我怎么做性能测试
查看>>
“十三五”规划强调信息安全
查看>>
欧盟斥资18亿欧元 砸向网络安全领域——英国,你后悔了没?
查看>>
网络安全专家寻勒索病毒蛛丝马迹 警告更多风险
查看>>
百亿交易额被指造假!科通芯城创始人报警回应
查看>>
AOFAX呼叫中心:企业如何提升竞争力和凝聚力
查看>>
以大数据探寻社会治理精准模式
查看>>
阿里巴巴集团技术委员会主席王坚:我曾经被诺贝尔奖得主司马贺忽悠,相信人工智能就是未来!...
查看>>
北控清洁能源俩附属订立光伏发电设备融资租赁协议
查看>>
慈溪:创卫,让城市生活更美好
查看>>
大数据经济价值报告发布 零售业最受益
查看>>
基于光纤网络视频监控系统
查看>>
Qt之显示网络图片
查看>>