1.#import比#include的优点:避免重复引用同一.h头文件。
2.计算机读取字符串的方式:起始位置location、起始到结束的长度length。
3.url分为:文件路径、网络路径(地址)。
4.初始化中:实例方法都是以init开头。类方法以类名开头(如:string、array、dictionary、set)。
5.容量不可变:带返回值,产生新内存。
6.容量可变:操作同一块内存(改变原有内容),内存不够按容量值增加;不用产生新内存,时间快,但多出来的空间会浪费,不带返回值。
7.%p,对象的地址。
8.转为字符串:NSStringFormRange(range对象);字符串转为整形:integerValue。
一.初始化(”特有“实例方法、类方法选择)
String分配在静态区,没分配内存。
Format:可格式化,支持其它数据类型,并将其转为字符串类型。
判断字符串是否为空用(.length > 0)
二.字符串对象追加
stringByAppendingFormat:
三.截取字符串对象的子字符串
1.从loc到最后一个
substringFromIndex:loc
2.从loc到指定长度
NSRange r = {loc,len};
substringWithRange:r
四.查找字符串对象的子字符串起始位置、长度
rangeOfString:@" "
options:
.location == NSNotFound(为找不着)
五.读取url
stringWithContentsOfFile
stringWithContentsOfURL
六.比较字符串
字符串内容比较:isEqualToString:
字符大小比较:compare :( 等同减号作用,返回值是-1,0,1)
七.大小写转换
lowercaseString
uppercaseString
八.字符串替换、分割为数组
stringByReplacingOccurrencesOfString:
withString:
stringByReplacingCharactersInRange:
withString:
componentsSeparatedByString
九.option:
NSCaseInsensitiveSearcher:不区分大小写字符。
NSDiacriticInsensitiveSearch:忽略-后内容作比较。(@"o-mygod" == @"o")
十.容量可变
1.初始化
[NSMutableString stringWithCapacity:];
API。。。。。。
/* NSString *str1 = [[ NSString alloc]initWithString: @"jobs"]; //分配在静态区,与NSString *str1 = @"jobs";是一样的。 NSString *str2 = [[NSString alloc]initWithFormat:@"%d",123]; NSString *str3 = [[ NSString alloc]initWithString: @"jobs"]; NSString *s = [[NSString alloc]initWithFormat:@"%d",123]; NSLog(@"str1 = %p",str1); NSLog(@"str2 = %p",str2); NSLog(@"str3 = %p",str3); NSLog(@"s = %p",s); NSLog(@"str1 = %d",str1.retainCount);//等于-1的原因,没分配内存 NSLog(@"str2 = %d",str2.retainCount); NSString *str4 = [NSString stringWithFormat:@"%d",567];//静态方法,便利构造器autorelease NSString *str5 = [NSString stringWithFormat:@"gates"]; NSString *str6 = [str4 stringByAppendingString:str5];//追加字符串产生新的字符串,str4不变 NSString *str7 = [str4 stringByAppendingFormat:@"%d",89]; //求子字符串 NSString *str8 = @"iphone5s5s"; NSString *str9 = [str8 substringFromIndex:6];//从lcoation该下标开始到结束,输出5s5s NSString *str10 = [str8 substringToIndex:6];//不包括目前的(从下标0开始到该下标的前一位结束,输出iphone) NSRange r1 = {5,1}; NSString *str11 = [str8 substringWithRange:r1]; //查找字符串 NSRange r2 = [str8 rangeOfString:@"5s" options: NSBackwardsSearch]; //NSRange r2 = [str8 rangeOfString:@"abc"]; if (r2.location == NSNotFound) { NSLog(@"没找着。。。。。。"); } NSLog(@"r2:%@",NSStringFromRange(r2)); // */ /* //读取文件 NSString *path = [[NSBundle mainBundle] pathForResource:@"SensitiveWord"//文件名 ofType:nil];//文件后缀 NSString *str12 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];//返回2个值 NSLog(@"str12 = %@",str12); //读取网络 // NSURL *url = [NSURL fileURLWithPath:path]; NSURL *url = [NSURL URLWithString:@"http://www.baidu.com/"]; NSString *str13 = nil; str13 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSLog(@"str13 = %@",str13); //转换 NSString *str14 = @"123"; int num1 = [str14 integerValue]; NSLog(@"num1 = %d",num1); //比较字符串, if ([str14 isEqualToString:@"123"]) { NSLog(@"two string is same"); } NSComparisonResult r = [str14 compare:@"122"]; NSLog(@"r = %d",r); //大小写转换 NSString *str15 = @"abC"; NSString *str16 = [str15 lowercaseString];//uppercaseString NSLog(@"str16 = %@",str16); */ //子字符替换 NSLog(@"%@",[@"hello world" stringByReplacingOccurrencesOfString:@"h" withString:@"WW"]); NSLog(@"%@",[@"hello world" stringByReplacingCharactersInRange:NSMakeRange(3, 5) withString:@"xxxxx"]); NSLog(@"%@",[@"super.man.xxx" componentsSeparatedByString:@"."]); //可变字符串:操作同一个地址,针对同一个内存,不用产生新内存,时间快,但多出来的空间会浪费 //NSMutableString *mstr1 = [NSMutableString string]; NSMutableString *mstr1 = [NSMutableString stringWithCapacity:10];//容量不够时,每次增加10 [mstr1 appendString:@"jobs"]; [mstr1 appendFormat:@"%d",123]; NSLog(@"mstr1 = %@",mstr1); NSRange r3 = {0,4}; [mstr1 deleteCharactersInRange:r3]; NSLog(@"mstr1 = %@",mstr1);