黑马程序员-OC语言-NSMutableString&NSString

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

NSMutableString是可变字符串,是NSString的子类。
它们俩之间的区别:
NSString是不可变的,里面的文字内容是不能进行修改的。
NSMutableString是可变的,里面的文字内容可以随时更改。

对字符串的操作方法,我们可以从6个方向去分类:构造、增、删、改、查、其他


NSString常用方法(因为不可变,所以不会有增、删、改的操作)

构造方法:

文件包容物
NSString  * file=[[NSString alloc] initWithContentsOfFile:文件地址:编码格式:错误信息];
格式化字符串
NSString * s=[[NSString  alloc] initWithFormat:@"%d+%d=%d",1,2,1+2];       //返回:“1+2=3” 这个字符串串生成oc字符串
从c字符串生成oc字符串
char arr[256];
NSString  * file=[[NSString alloc] initWithUTF8String:arr];

判断字符串是否是以某个字符串开头
BOOL isTrue1 = [url hasPrefix:@"http://"]; 
判断字符串是否是以某个字符串结尾
BOOL isTrue1 = [url hasSuffix:@".com"]; 
返回值是NSComparisonResult类型
NSComparisonResult res = [s1 compare:@"40"];
比较
BOOL isTrue1 = [s1 isEqualToString:s2];//非0即真

NSRange range = [s rangeOfString:@"\\d+" options:1024]; // 通配符\d+表示连续的数字字符串
截取子字符串
NSMutableArray *arr = [s substrings:@"\\d+" options:1024];
把所有的空格替换成一个空格
NSString *s =[s stringByReplacingOccurrencesOfString:"s++" withString:" " options:1024 range:range]

其他

获得字符串中第0个位置的字符
unichar ch = [s characterAtIndex:0];
使用UTF8String属性(方法),可以将OC字符串转换为C语言字符串
printf("%s\n", s.UTF8String);
去除指定字符串
s = [s stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"pnas></"]];
//凡是在这个字符串中出现的字符,搜索字符串的两端,如果在这个字符串出现的字符中,就删除

NSMutableString常用方法

拼接aString到最后面
- (void)appendString:(NSString *)aString;
拼接一段格式化字符串到最后面
- (void)appendFormat:(NSString *)format, ...;
删除range范围内的字符串
- (void)deleteCharactersInRange:(NSRange)range;
在具体位置中插入aString
- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
替换
- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;//使用aString替换range范围内的字符串
将字符串写入文件
BOOL isSuccess = [s writeToFile:@"/Users/apple/Desktop/1.txt" atomically:YES encoding:4 error:&err];

关于字符串操作的几点思考:
拿到一个新的类, 如何去使用呢?OC的方法名都较长,所以方法名很容易语意化,通过方法名就可以很容易判断方法的用法。
一般情况都是将构造方法点出来, 看看功能, 再转到头文件查看方法。
在学习字符串操作时,就开始养成时常看定义的习惯。

这里写图片描述
我用Xmind整理的思维导图

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值