NSString

int main(int argc, const char * argv[]) {

    //1.文件读取
    /*
     //1.创建URL
     //协议头 + 主机地址 + 文件路径
     //    NSString *path = @"file://192.168.199.199/Users/NJ-Lee/Desktop/lnj.txt";
     //    NSString *path = @"http://www.baidu.com";
     
     //注意:如果加载的资源是本机上的资源,那么URL中的主机地址可以省略
     //虽然主机地址可以省略,但是需要注意,文件路劲中最前面的/不能省略,文件路径最前面的/代表根路径
     //    NSString *path = @"file:///Users/NJ-Lee/Desktop/lnj.txt";
     //    NSURL *url = [NSURL URLWithString:path];
     
     //    NSString *path = @"file:///Users/NJ-Lee/Desktop/lnj.txt";
     //注意:如果是通过NSURL的fileURLWithPath:方法创建URL,那么系统会自动给我们传入的字符串添加协议头(file://),所以字符串中不需要再写file://
     //    注意:开发中一 般情况下,如果是访问本机的资源,创建URL的时候,建议使用fileURLWithPath方法创建
     //因为url不支持中文,如果URL中包含中文,那么无法访问;但是如果是通过fileURLWithString方法创建URL,哪怕URL中包含中文也可以进行访问,系统内部会自动对URL中包含的中文进行处理
     //    NSURL *url = [NSURL fileURLWithPath:path];
     
     NSString *path = @"file:///Users/NJ-Lee/Desktop/未命名文件夹/lnj.txt";
     //如果URL中包含中文,又非不通过fileURLWithPath创建,也可以破
     //如果想破就必须在创建URL之前先对字符串中的中文进行处理,进行百分号编码
     NSLog(@"处理前:%@", path);
     path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
     NSLog(@"处理后:%@", path);
     
     NSURL *url = [NSURL URLWithString:path];
     NSLog(@"url = %@", url);
     
     //2.根据URL加载文件中的字符串
     NSString *str = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
     
     NSLog(@"str = %@", str);
     
     */
    
    //2.文件写入
    NSString *str = @"lnj";
    //    NSString *path = @"file:///Users/NJ-Lee/Desktop/未命名文件夹/abc.txt";
    //    path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    //    NSURL *url = [NSURL URLWithString:path];
    
    NSString *path = @"/Users/NJ-Lee/Desktop/未命名文件夹/abc.txt";
    NSURL *url = [NSURL fileURLWithPath:path];
    [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];
    
    //注意点:如果多次往同一个文件中写入内容,那么后一次的会覆盖前一次的
    NSString *str2 = @"xxoo";
    [str2 writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];

    return 0;
}

// 本质就是从字符串的第一个字符开始匹配, 只要不匹配就返回NO
[str hasPrefix:@"http://"];

// 本质就是从字符串的最后一个字符开始匹配, 只要不匹配就返回NO
[str hasSuffix:@".gif"]

// 只要str中包含该字符串, 那么就会返回该字符串在str中的起始位置以及该字符串的长度
    // location从0开始 , length从1开始
    // 如果str中没有需要查找的字符串, 那么返回的range的length=0, location = NSNotFound
    NSRange range =  [str rangeOfString:@"lnj"];
NSRange range = NSMakeRange(location, length);
    NSString *newStr = [str substringWithRange:range];

    // 从什么地方开始截取, 一直截取到最后
//    NSString *newStr = [str substringFromIndex:6];
//    NSLog(@"newStr = %@", newStr);

    // 从开头开始截取, 一直截取到什么位置
//    NSString *newStr = [str substringToIndex:6];
//    NSLog(@"newStr = %@", newStr);
// OccurrencesOfString: 要替换谁
    // withString: 用谁替换
    NSString *newStr = [str stringByReplacingOccurrencesOfString:@"&" withString:@"/"];
    NSLog(@"newStr = %@", newStr);

// 替换首尾
NSCharacterSet *set = [NSCharacterSet uppercaseLetterCharacterSet];
    NSString *newStr = [str stringByTrimmingCharactersInSet:set];
// 其实本质就是判断字符串是否以/开头
    if([str isAbsolutePath])
    {
        NSLog(@"是绝对路径");
    }else{
        NSLog(@"不是绝对路径");
    }

// 2.获取文件路径中的最后一个目录
    // 本质就是获取路径中最后一个/后面的内容
    /*
    NSString *newStr = [str lastPathComponent];
    NSLog(@"%@", newStr);
     */

// 3.删除文件路径中的最后一个目录
    /*
    // 本质就是删除最后一个/后面的内容, 包括/也会被删除
    NSString *newStr = [str stringByDeletingLastPathComponent];
    NSLog(@"%@", newStr);
     */

// 4.给文件路径添加一个目录
    /*
     // 本质就是在字符串的末尾加上一个/ 和指定的内容
     // 注意: 如果路径后面已经有了/, 那么就不会添加了
     //      如果路径后面有多个/, 那么会自动删除多余的/, 只保留一个
     NSString *newStr = [str stringByAppendingPathComponent:@"xmg"];
     NSLog(@"%@", newStr);
     */

// 5.获取路径中文件的扩展名
    /*
    // 本质就是从字符串的末尾开始查找., 截取第一个.后面的内容
    NSString *newStr = [str pathExtension];
    NSLog(@"%@", newStr);
     */
    
    // 6.删除路径中文件的扩展名
    /*
    // 本质就是从字符串的末尾开始查找.,删除第一个.和.后面的内容
    NSString *newStr = [str stringByDeletingPathExtension];
    NSLog(@"%@", newStr);
     */
    
    // 7.给文件路径添加一个扩展名
    // 本质就是在字符串的末尾加上一个.和指定的内容
    NSString *newStr = [str stringByAppendingPathExtension:@"jpg"];
    NSLog(@"%@", newStr);

// 8.C语言字符串和OC字符串之间的转换
    /*
    char *cStr = "lnj";
    NSString *str = [NSString stringWithUTF8String:cStr];
    NSLog(@"str = %@", str);
    
    NSString *newStr = @"lmj";
    const char *cStr2 = [newStr UTF8String];
    NSLog(@"cStr2 = %s", cStr2);
     
     */

// 9.将字符串的首字符转换为大写
    /*
    NSString *newStr = [str capitalizedString];
    NSLog(@"%@", newStr);
     */

// 5.创建文件夹
    /*
    // createDirectoryAtPath: 告诉系统文件夹需要创建到什么位置
    // withIntermediateDirectories: 如果指定的文件中有一些文件夹不存在, 是否自动创建不存在的文件夹
    // attributes: 指定创建出来的文件夹的属性
    // error: 是否创建成功, 如果失败会给传入的参数赋值
    // 注意: 该方法只能用于创建文件夹, 不能用于创建文件
     BOOL flag = [manager createDirectoryAtPath:@"/Users/xiaomage/Desktop/abc/lnj" withIntermediateDirectories:YES attributes:nil error:nil];
    NSLog(@"%i", flag);

// 6.创建文件
// createFileAtPath: 指定文件创建出来的位置
// contents : 文件中的内容
// attributes: 创建出来的文件的属性

// NSData : 二进制数据
// 注意: 该方法只能用于创建文件, 不能用于创建文件夹
NSString *str1 = @"江哥真帅";
NSData *data = [str1 dataUsingEncoding:NSUTF8StringEncoding];
[manager createFileAtPath:@"/Users/lujingchao/Desktop/abc.txt" contents:data attributes:nil];

你可能感兴趣的:(NSString)