------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
使用NSString类方法创建字符串
可以看出实现同一个功能NSString提供了对象方法和类方法两种解决方式而类方法快捷方便,因此在实际开发中推荐使用类方法来操作字符串
将字符串写入到一个文件里
2.NSMutableString类的操作
NSMutableString继承自NSString那么NSMutableString可以使用NSString类中的任意方法
NSMutableString提供了自己独有的方法
1.NSString类的操作
使用NSString类的对象初始化方法创建字符串
// 创建无参数的字符串
NSString *str2 = [[NSString alloc] initWithString:@"Jack"];
// 创建带参数的字符串
NSString *str3 = [[NSString alloc] initWithFormat:@"age is %d",10];
// C字符串 转换为 OC字符串
NSString *str4 = [[NSString alloc] initWithUTF8String:"Rose"];
// OC字符串 转换为 C字符串
const char c = [str4 UTF8String];
// 读取文件内容第一种方式:读取桌面下 getWeather.xml 文件里的所有内容
NSString *str5 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/getWeather.xml"
encoding:NSUTF8StringEncoding error:nil];
// NSUTF8StringEncoding 适用于使用中文的编码格式
// 读取文件内容第二种方式
// URL:资源路径 格式为:协议头:// 比如本地文件的URL格式:file:// 网络文件的URL格式:http:// 服务器文件的URL格式:ftp://
NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple/Desktop/getWeather.xml"];
// 如果访问网络就可以定义:http://www.baidu.com
NSString *str6 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSLog(@"/n%@",str6);
使用NSString类方法创建字符串
// 创建无参数的字符串
NSString *str2 = [NSString stringWithString:@"Jack"];
// 创建带参数的字符串
NSString *str3 = [NSString stringWithFormat:@"age is %d",10];
// C字符串 转换为 OC字符串
NSString *str4 = [NSString stringWithUTF8String:"Rose"];
// 读取文件内容第一种方式:读取桌面下getWeather.xml文件里的所有内容
NSString *str5 = [NSString stringWithContentsOfFile:@"file:///Users/apple/Desktop/getWeather.xml" encoding:NSUTF8StringEncoding error:nil];
// NSUTF8StringEncoding 适用于使用中文的编码格式
// 读取文件内容第二种方式:读取桌面下getWeather.xml文件里的所有内容
NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/getWeather.xml"];
NSString *str6 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
可以看出实现同一个功能NSString提供了对象方法和类方法两种解决方式而类方法快捷方便,因此在实际开发中推荐使用类方法来操作字符串
将字符串写入到一个文件里
// 给目标文件中写入字符串,两种写入方式在写入之前都会将文件中的内容全部清空后再写入
// 第一种写入方式
// atomically参数指写入不成功时要不要停止
[@"Java,iOS" writeToFile:@"/Users/apple/Desktop/getWeather.xml" atomically:YES encoding:NSUTF8StringEncoding error:nil];
// 第二种写入方式
NSString *content = @"iOS,Java";
// NSURL提供了直接定义本地URL的类方法
NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/getWeather.xml"];
[content writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];
2.NSMutableString类的操作
NSMutableString继承自NSString那么NSMutableString可以使用NSString类中的任意方法
NSMutableString提供了自己独有的方法
NSString *str = [NSString stringWithFormat:@"My age is 10 "];
NSString *str2 = [str stringByAppendingString:@"11 12"];
NSLog(@"%@",str2); // 打印:My age is 10 11 12
NSMutableString *mutalbeStr = [NSMutableString stringWithFormat:@"My age is 10 "];
[mutalbeStr appendString:@"11 12"]; // appendString方法没有返回值,说明是直接str字符串后面进行拼接
NSLog(@"%@",mutalbeStr); // 打印:My age is 10 11 12
// 可以看出:NSString一旦定义了str字符串它本身就不可变了,虽然NSString类方法也提供了拼接的方法如stringByAppendString方法但是它返回的是一个新的字符串。而NSMutableString提供的拼接方法appendString方法是在原有的字符串上直接拼接它没有返回值。这就是可变和不可变字符串的本质
// NSMutableString 提供了删除方法,比如说要删掉上面可变字符串中的11有两种方式:
// 第一种 必须要清楚要删除内容的location和length,11在整个字符串中的loc = 11 length = 2 (不推荐使用)
//[mutalbeStr deleteCharactersInRange:NSMakeRange(13, 2)];
// 第二种:先获取要删除内容的范围,然后删除范围内的字符串
NSRange range = [mutalbeStr rangeOfString:@"11"];
[mutalbeStr deleteCharactersInRange:range];
NSLog(@"%@",mutalbeStr); // 打印:My age is 10 12