您的位置:首页 > 编程语言 > C语言/C++

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

2016-01-03 05:16 639 查看
——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培训、期待与您交流! ——-
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: