黑马程序员技术交流社区

标题: Foundation--NSString && NSMutableString [打印本页]

作者: Jack-xie    时间: 2014-10-10 17:45
标题: Foundation--NSString && NSMutableString
字符串的创建     NSString : 不可变字符串
    //1. 直接创建字符串
    NSString *s1 = @"Jack";
    NSString *s2 = [[NSString alloc] initWithString:@"Jack"];
    NSString *s3 = [[NSString alloc] initWithFormat:@"Age is %d",10];
   
    //2. C语言字符串和OC字符串的相互转换
    NSString *s4 = [[NSString alloc] initWithUTF8String:"Jack"];// C字符串---> OC字符串
    const char *cs = [s4 UTF8String]; // OC字符串---> C字符串
   
    //3. 把文字内容读取为字符串
    // NSUTF8StringEncoding 用到中文就可以用这种编码
    NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"/Users/jackxie/Desktop/a.rtf" encoding:NSUTF8StringEncoding error:nil];
   
    //4. 把链接内容读取为字符串
    /*
     URL : 资源路径
     协议头:// 路径
     file://
     ftp://
     
     http://www.baidu.com
     */
    NSURL *url = [[NSURL alloc] initWithString:@"http://www.baidu.com"];// 各种类型的url资源  这是网页的代码
    NSURL *url1 = [NSURL fileURLWithPath:@"/Users/jackxie/Desktop/a.rtf"];// 只能是本地资源
    NSString *s6 = [[NSString alloc] initWithContentsOfURL:url1 encoding:NSUTF8StringEncoding error:nil];
   
    /*
     5.  一般都会有一个类方法跟对象方法配对
    NSURL *url1 = [NSURL URLWithString:@"/Users/jackxie/Desktop/a.rtf"];
    //NSString *s7 = [NSString stringWithContentsOfURL:url1 encoding:NSUTF8StringEncoding error:nil];
    NSString *s8 = [NSString stringWithFormat:@"Age is %d",5];
    NSString *s9 = [NSString stringWithString:@"Jack"];
    NSString *s10 = [NSString stringWithUTF8String:"Jack"];
    */
   
    // 字符串的导出
    //1. 直接创建
    [@"Jack\nJack" writeToFile:@"/Users/jackxie/Desktop/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
    //2. 使用对象创建
    NSString *str = @"jack\njack\njack";
    NSURL *url2 = [NSURL fileURLWithPath:@"/Users/jackxie/Desktop/my1.txt"];
    [str writeToFile:url2 atomically:YES encoding:NSUTF8StringEncoding error:nil];
   
NSMutableString : 可变字符串  继承NSString

    //1. 使用NSMutableString 创建一个可变的字符串对象
    NSMutableString *ms1 = [NSMutableString stringWithFormat:@"my age is %d",10];
   
    //2.添加内容: 拼接内容到ms1 的后面
    [ms1 appendString:@" 11 12"];
    [ms1 appendFormat:@" %d",5];
   
    //3.替换内容:(找出字符,然后进行替换)
    NSRange range = [ms1 rangeOfString:@"age"];
    [ms1 replaceCharactersInRange:range withString:@"yes"];
   
    //4.插入内容:(插入声明内容  在字符串的哪个下标)
    [ms1 insertString:@"hello " atIndex:0];
   
    //5.删除内容:
    //第一种删除指定字符串方式 不可改变原来的字符串
    [ms1 deleteCharactersInRange:NSMakeRange(3, 3)];
    //第二种删除指定字符串方式  可以改变原来的字符串
    NSRange range1 = [ms1 rangeOfString:@"age"];// 先获取age的范围
    [ms1 deleteCharactersInRange:range1];// 从获得的范围值中删除




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2