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