1. NS的由来:因为Obj-C不支持命名空间,所以为了避免重复,要在类前面加上自己特有的前缀,NS就是next step的意思。
2. [[alloc] init]对比[new]的优势:就是能够在开辟了内存空间之后,可以自定义init方法来方便我们对开辟的内存空间初始化。
3. 获取字符串长度:length属性,NSUInteger类型,%lu
4. 根据索引获得单个字符:characterAtIndex:index方法,unichar类型,%c。索引是从0开始的,如果给定索引超出范围会导致异常,如果你给入的是一个负数,那么获得的值就是一个乱码。
5. 根据索引获得子串:substringFromIndex:NSUInteger方法,从给定的索引开始(包括索引位置)截取后面的子串;substringToIndex:NSUInteger方法,从头截取到当前的索引之前的字串(不包括索引位置);substringWithRange:NSRange方法,截取所给范围的子串,NSRange是一个结构体,里面有俩NSUInteger,一个是开始索引位置(包含索引位置),一个是截取的长度;
6. 根据字符串获得该字符串在另一个字符串的索引位置:rangOfString:NSString方法,返回一个NSRange数据;可以使用NSStringFromRange:NSRange把一个范围以字符串形式打印;如果你给的字符串不在当前字符串之中,则NSRange.location = -1;NSStringFromRange则会显示{901902910102,0}的结果。NSNotFound如果==NSRange.location;则就代表没有找到;
7. 字符串的判断:判断字符串是否为空:str == nil || str.lenth == 0;判断一个字符串是否以xxx开头:hasPrefix:NSString方法;判断字符串是否以制定的字符串结尾:hasSuffix:NSString方法,在开发中常用于判断文件格式;判断字符串内容是否相等:isEqualToString:NSString*方法,直接用== 符号判断的其实是指针地址;
8. compare就是isEqualToString的增强版,返回一个enum枚举数据:NSComparisonResult:-1代表升续;0代表相等;1代表降序;按照每个字母Ascii码的值大小;
9. 模拟isEqualToString的内部实现:1.判断两个待比较的指针地址,如相等直接返回true;2.比较每一个字母,当发现不相同的情况返回false;
10. 基本数据类型转换成字符串:都可用用stringWithFormat:方法%d-int;%.nf-小数点保留n位的float;%@-NSString*;%.nf-小数点后保留n位double;%c-char;
11. 字符串转换成基本数据类型:intValue-int;floatValue-float;doubleValue-double;
12. 注意:当你把NSString转换成某种基本的数据类型时一定要确保字符串内的内容正确;
13. 将字符串全部转换成大写:uppercaseString;将字符串全部转换成小写:lowercaseString;将首字母大写:capitalizedString
14. 字符串重组:在字符串末尾拼接新字符串-stringByAppendingString:NSString;在制定的位置拼接字符串-stringByReplacingCharactersInRange:NSRangewithString:NSString*;这个NSRange的location就是开始拼接的位置,length则是开始位置之后会被替换的长度;把字符串中的每个指定字符替换成给定的其他字符:stringByReplacingOccurrencesOfString:NSString* withString:NSString*;
15. 把NSString写入文件:writeToFile:(NSString*)pathatomically:YES ecoding: (NSStringEncoding)NSUTF8StringEncoding error(NSError*);
16. 从文件中获取NSString:stringWithContentsOfFiles:(NSString*)path ecoding: (NSStringEncoding) error: (NSError*)
17. 可变字符串NSMutableString:继承自NSString,拥有NSString的所有属性和方法;
18. 可变字符串的initWithCapacity:NSUInteger传递的大小并不真的限制可变字符串的长度
19. 在可变字符串中setString初始化,appendString末尾拼接,insertString插入字符串,deleteCharactersInRange:NSRange删除给定范围的字符,replaceCharactersInRange:NSRangewithString:NSString用给定字符替换给定范围的字符;这些方法都返回void,都是修改当前调用这些方法的可变字符串对象的