栈空间 str—>( ffc2 ffc3) (NSString结构体类型指针存堆中地址) |
(ffc2 ffc3)两个字节 | 4 |
(ffc3 ffc4) | 5 |
(ffc5 ffc6) | 6 |
(ffc7 ffc8) | nil |
NSString *string = @"This is a String!";
[[NSString alloc] initWithString:@"This is a String!"];
// 或者[[NSString alloc] initWithFormat:@"My age is %i", 17];
char *cString = "这是一串中文";
[[NSString alloc] initWithCString:cString encoding:NSUTF8StringEncoding];
或者 [[NSString alloc] initWithUTF8String:cString];
// 字符串编码可以在NSString.h中查阅
NSError *error = nil; // 用来记录错误信息
NSString *path = @"/Users/apple/Desktop/test.txt"; // 文件路径
NSString *string = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
if (error) { // 文件读取失败
// 得到"通俗易懂"的错误信息
NSString *desc = [error localizedDescription];
NSLog(@"\n文件读取失败,错误信息如下:\n%@", desc);
} else { // 文件读取成功
NSLog(@"\n文件读取成功,内容如下:\n%@", string);
}
// 将中文字符编码转为NSStringEncoding格式的编码
// NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(
kCFStringEncodingGB_18030_2000);
NSError *error = nil; // 用来记录错误信息
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSString *string = [[NSString alloc] initWithContentsOfURL:url
encoding:NSUTF8StringEncoding error:nil];
if (error) { // 读取失败
// 得到"通俗易懂"的错误信息
NSString *desc = [error localizedDescription];
NSLog(@“\n读取失败,错误信息如下:\n%@", desc);
} else { // 读取成功
NSLog(@“\n读取成功,内容如下:\n%@", string);
}
还有一些静态方法(都是autorelease的)
[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSString *string = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSString的导出
NSString *string = @"我是字符串";
NSString *path = @"/Users/apple/Desktop/abc.txt";
[string writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
或者
NSString *urlPath = @"file:///Users/apple/Desktop/abc.txt";
NSURL *url = [NSURL URLWithString:urlPath];
[string writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];
全部转为大写字母
全部转为小写字母
首字母变大写,其他字母都变小写
NSString的比较
比较两个字符串的内容是否相同,相同就返回YES,不同则返回NO
逐个字符地进行比较,返回NSComparisonResult来显示比较结果.
NSComparisonResult是一个枚举,有3个值:
NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending
如果左侧大于右侧,返回NSOrderedDescending,
如果左侧小于右侧,返回NSOrderedAscending,
否则返回NSOrderedSame
忽略大小写进行比较,返回值与compare:一致
NSString搜索字符串
是否以aString开头
是否以aString结尾
检查是否包含了aString,如果包含,就返回aString的位置,如果不包含,NSRange的location为-1,length为0
可以传递一个mask参数,改变搜索方式
比如NSStringCompareOptions为NSBackwardsSearch表示从尾部开始搜索
还可以用searchRange指定搜索范围
NSString 的截取
从指定位置from开始(包括指定位置的字符)到尾部
从字符串的开头一直截取到指定的位置to,但不包括该位置的字符
按照所给出的NSRange从字符串中截取子串
用separator为分隔符截取子串,返回一个装着所有子串的集合NSArray
NSString与路径
将components中的字符串按顺序拼成一个路径
将一个路径分解成一个装着每一个目录的NSArray
是否为绝对路径
获得最后一个目录
删除最后一个目录
在路径的后面拼接一个目录
NSString与拓展名
获得拓展名
删除尾部的拓展名
在尾部添加一个拓展名
NSString的其他用法
返回字符串的长度(字符个数)
返回index位置对应的字符
转为C语言中的字符串
===================================
NSMutableString
capacity只是一个最优值,字符串的大小并不仅限于所提供的容量,设置了capacity,可以预分配一块内存来存储它,操作速度会快很多
初始化完毕后可以使用此方法设置字符串的内容
这两个方法都是在尾部拼接一段字符串
将range位置的字符串替换为aString
在loc这个位置插入aString(aString的起始位置是就loc)
删除range这个范围的字符串(经常跟rangeOfString:一起使用删除特定的字符串)
栈空间 str—>( ffc2 ffc3) (NSString结构体类型指针存堆中地址) |
(ffc2 ffc3)两个字节 | 4 |
(ffc3 ffc4) | 5 |
(ffc5 ffc6) | 6 |
(ffc7 ffc8) | nil |
NSString *string = @"This is a String!";
[[NSString alloc] initWithString:@"This is a String!"];
// 或者[[NSString alloc] initWithFormat:@"My age is %i", 17];
char *cString = "这是一串中文";
[[NSString alloc] initWithCString:cString encoding:NSUTF8StringEncoding];
或者 [[NSString alloc] initWithUTF8String:cString];
// 字符串编码可以在NSString.h中查阅
NSError *error = nil; // 用来记录错误信息
NSString *path = @"/Users/apple/Desktop/test.txt"; // 文件路径
NSString *string = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
if (error) { // 文件读取失败
// 得到"通俗易懂"的错误信息
NSString *desc = [error localizedDescription];
NSLog(@"\n文件读取失败,错误信息如下:\n%@", desc);
} else { // 文件读取成功
NSLog(@"\n文件读取成功,内容如下:\n%@", string);
}
// 将中文字符编码转为NSStringEncoding格式的编码
// NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(
kCFStringEncodingGB_18030_2000);
NSError *error = nil; // 用来记录错误信息
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSString *string = [[NSString alloc] initWithContentsOfURL:url
encoding:NSUTF8StringEncoding error:nil];
if (error) { // 读取失败
// 得到"通俗易懂"的错误信息
NSString *desc = [error localizedDescription];
NSLog(@“\n读取失败,错误信息如下:\n%@", desc);
} else { // 读取成功
NSLog(@“\n读取成功,内容如下:\n%@", string);
}
还有一些静态方法(都是autorelease的)
[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSString *string = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSString的导出
NSString *string = @"我是字符串";
NSString *path = @"/Users/apple/Desktop/abc.txt";
[string writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
或者
NSString *urlPath = @"file:///Users/apple/Desktop/abc.txt";
NSURL *url = [NSURL URLWithString:urlPath];
[string writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];
全部转为大写字母
全部转为小写字母
首字母变大写,其他字母都变小写
NSString的比较
比较两个字符串的内容是否相同,相同就返回YES,不同则返回NO
逐个字符地进行比较,返回NSComparisonResult来显示比较结果.
NSComparisonResult是一个枚举,有3个值:
NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending
如果左侧大于右侧,返回NSOrderedDescending,
如果左侧小于右侧,返回NSOrderedAscending,
否则返回NSOrderedSame
忽略大小写进行比较,返回值与compare:一致
NSString搜索字符串
是否以aString开头
是否以aString结尾
检查是否包含了aString,如果包含,就返回aString的位置,如果不包含,NSRange的location为-1,length为0
可以传递一个mask参数,改变搜索方式
比如NSStringCompareOptions为NSBackwardsSearch表示从尾部开始搜索
还可以用searchRange指定搜索范围
NSString 的截取
从指定位置from开始(包括指定位置的字符)到尾部
从字符串的开头一直截取到指定的位置to,但不包括该位置的字符
按照所给出的NSRange从字符串中截取子串
用separator为分隔符截取子串,返回一个装着所有子串的集合NSArray
NSString与路径
将components中的字符串按顺序拼成一个路径
将一个路径分解成一个装着每一个目录的NSArray
是否为绝对路径
获得最后一个目录
删除最后一个目录
在路径的后面拼接一个目录
NSString与拓展名
获得拓展名
删除尾部的拓展名
在尾部添加一个拓展名
NSString的其他用法
返回字符串的长度(字符个数)
返回index位置对应的字符
转为C语言中的字符串
===================================
NSMutableString
capacity只是一个最优值,字符串的大小并不仅限于所提供的容量,设置了capacity,可以预分配一块内存来存储它,操作速度会快很多
初始化完毕后可以使用此方法设置字符串的内容
这两个方法都是在尾部拼接一段字符串
将range位置的字符串替换为aString
在loc这个位置插入aString(aString的起始位置是就loc)
删除range这个范围的字符串(经常跟rangeOfString:一起使用删除特定的字符串)