黑马程序员------Foundation框架------NSString类的操作

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



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


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值