——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培训、期待与您交流! ——-