NSString
NSString 拥有恒定性,所有操作无法更改字符串本身,只能通过返回新值的形式更改。
NSString 拥有共享机制,ARC对其有特殊的管理规则
1.创建字符串
NSString *str1 = @"str1"; //1、创建常量字符串
NSString *str2 = [NSString stringWithFormat:@"str2 is %@",str1]; //2、创建格式化字符串
NSString *str3 = [[NSString alloc]init]; //3、创建空字符串,给予赋值。
str3 = @"str3";
NSString *str4 = [[NSString alloc]initWithCString:"Hello World!" encoding:NSUTF8StringEncoding];
NSString *str5 = [NSString stringWithCString:"Hello World!" encoding:NSUTF8StringEncoding];
2.访问字符串
char c = [str characterAtIndex:0] //根据索引获得单个字符
NSUInteger length = [str length] //获取字符串长度
uppercaseString //大写
lowercaseString //小写
capitalizedString //首字母大写
3.查询字符串
//是否包含子串
NSRange range = [str rangeOfString:@"str"]; //如果不包含子串的话,range.length 为0
//获取子串
substringToIndex //截取字符串起始点到index之间的字符
substringFromIndex //截取字符串从Index到结尾之间的字符
NSRange rang = NSMakeRange(Loc,Length); //设置截取范围,从loc开始,长度为Length
subStringWithRange //根据范围来截取字符串
compnentsSeparatedByString //按照指定字符分割字符串,返回数组
4.比较字符串
isEqualToString 比较的是值是否相等, “==”比较的是指针是否相等
hasPrefix //字符串是否以...开头
hasSuffix //字符串是否以...结尾
compare方法(comparer返回的三种值)
1)NSOrderedSame 判断两者内容是否相同
2)NSOrderedAscending 判断两对象值的大小(按字母顺序进行比较,[str1 compare:str2] str2大于str1为真)
3 ) NSOrderedDescending 判断两对象值的大小(按字母顺序进行比较,[str1 compare:str2] str2小于str1为真)
4)[str1 compare:str2 options:NSCaseInsensitiveSearch | NSNumericSearch]
//NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较,区分大小写
//NSNumericSearch:比较字符串的字符个数,而不是字符值。
caseInsensitiveCompare 不考虑大小写比较
5.替换字符串 (伪更改,返回新字符串)
str = [str stringByAppendingString :@"str"];
str = [str0 stringByReplacingCharactersInRange:rang withString:@"str"]//根据范围替换文字
stringByReplacingOccurrencesOfString:@"123" withString@"abc" //把字符串中的123替换成abc
NSMutableString
NSMutableString具有可变性
NSMutableString是NSString的子类
NSMutableString不具有共享机制
NSMutabelString并不是在原有内存上直接增长,而是重新分配一个更大或更小的缓存容量存放字符
NSMutabelString stringWithCapacity: 100 //初始化分配容量
字符串初始化后,会分配一个缓存容量capacity,当字符串增长时,其容量会以两倍的方式增长,伴随的代价是
1)分配新的堆内存
2)将原来的堆内存上的内容拷贝到新内存
3)释放原来的堆内存
NSMutabelString的常用操作
1.添加字符串
appendString
appendFormat
2.删除字符串
[str deleteCharacterInRange:[str rangeOfString:@"aaa"]] //查找出aaa所在的range,然后删除这个range
3.修改字符串
setString
insertString@"aaa" atIndex:0 //在Index位置插入字符
[mustr3 replaceCharactersInRange:replaceRange withString:@"Hello"]; //替换range范围的字符
1,字符串拼接
NSString *newString = [NSString stringWithFormat:@"%@%@",tempA,tempB];
2,字符转int
int intString = [newString intValue];
3,int转字符
NSString *stringInt = [NSString stringWithFormat:@"%d",intString];
4,字符转float
float floatString = [newString floatValue];
5,float转字符
NSString *stringFloat = [NSString stringWithFormat:@"%f",intString];
参考资料
http://blog.csdn.net/xys289187120/article/details/6777283
http://www.cnblogs.com/superhappy/archive/2012/11/19/2778084.html