【Foundation学习笔记】常用类--NSString和NSMutableString

来源:互联网 发布:linux开启443端口命令 编辑:程序博客网 时间:2024/05/19 18:45

一、 NSString(不可变字符串)

1、字符串的创建

每一个对象方法都有对应的类方法,使用类方法不需要管理内存。
    // 这种方式创建出来的字符串是字符串常量,不需要管理内存(1)NSString *str1 = @"jack";(2)NSString *str2 = [[NSString alloc] init];    str2 = @"jack";(3)NSString *str3 = [[NSString alloc] initWithString:@"jack"];    NSString *str3 = [NSString stringWithString:@"jack"];(4)NSString *str4 = [[NSString alloc] initWithFormat:@"age is %d", 10];    NSString *str4 = [NSString stringWithFormat:@"age is %d", 10];(5)// C字符串转 OC字符串    NSString *str5 = [[NSString alloc] initWithUTF8String:"jack"];    NSString *str5 = [NSString stringWithUTF8String:"jack"];    // OC字符串转 C字符串    const char *c = [str5 UTF8String];(6)// 从文件中读取字符串    // 只要用到中文编码,就写NSUTF8StringEncoding    NSString *str6 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];    NSString *str6 = [NSString stringWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];(7)// 从路径中读取字符串    // URL:资源路径    // 协议头://路径    // file://    // ftp://    NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple/Desktop/1.txt"];    NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/1.txt"];    NSString *str7 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];     NSString *str7 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

2、把字符串输出到文件

NSString *str = @"jack\njack";[str writeToFile:@"/Users/apple/Desktop/My" atomically:YES encoding:NSUTF8StringEncoding error:nil];

二、NSMutableString(可变字符串)

1、@interface NSMutableString : NSString

继承自NSString,所以之前NSString中的创建方法,它都可以使用

2、NSMutableString基本使用

(1)字符串增加

NSMutableString *s1 = [NSMutableString stringWithFormat:@"my age is 10"];// 拼接内容在s1后面[s1 appendString:@",good!"];

(2)字符串删除

// 删除 is[s1 deleteCharactersInRange:NSMakeRange(7, 2)];
// 上面方法的缺点是,如果is变换了位置就无法删除了// 先确定is的范围,然后再删除    NSRange range = [s1 rangeOfString:@"is"];    [s1 deleteCharactersInRange:range];

3、补充:NSString在原来字符串基础上新建字符串

NSString *s2 = [NSString stringWithFormat:@"my age is 11"];// 在不可变字符串的基础上添加新的字符串创建新的字符串NSString *s3 = [s2 stringByAppendingString:@",my name is jack."];

0 0
原创粉丝点击