OC學習(四)不可變字符串類和可變字符串類

今天系統性的學習了OC中的NSString(字符串)類以及它的子類NSMutableString(可變字符串)類,
下面舉例介紹下里面的一部分比較常用方法
一 NSString類的部分方法, NSString 是不可變字符串,所以方法調用時並不是對原字符串進行修改,
而是先建立一個原字符串的副本,然後對副本內容進行修改
1.創建對象兩種方式:
(1)便利構造器( + 號方法):stringWithFormat
 NSString *str1 = [NSString stringWithFormat:@"iPhone5"];
 NSLog(@"str1 :%@", str1);
(2)alloc + 初始化方法:initWithFormat
 NSString *str2 = [[NSString alloc] initWithFormat:@"iPhone5s"];
 NSLog(@"str2 :%@", str2);

2.求字符串長度:length
 NSUInteger length = [str1 length];//引用方法1中的str1
 NSLog(@"%lu", length);//控制檯輸出進行檢驗

3.獲取字符串中的某個字符:characterAtIndex
 unichar charac = [str1 characterAtIndex:5];//引用方法1中的str1
 NSLog(@"%c", charac);//控制檯輸出進行檢驗
4.判斷是否以指定的字符串開頭:hasPrefix
 或者以指定的字符串結尾:hasSuffix
 例如:判斷一個字符串是否以http開頭,是否以.com結束
 NSString *str3 = [[NSString alloc]initWithFormat:@"http://www.baidu.com"];
 //判斷是否以http開頭
 BOOL isPrefix = [str3 hasPrefix:@"http"];
 NSLog(@"isPrefix = %d", isPrefix);//控制檯輸出進行檢驗(BOOL類型,非0爲真)
 //判斷是否以.com結尾
 BOOL isSuffix = [str3 hasSuffix:@".com"];
 NSLog(@"isSuffix = %d", isSuffix);//控制檯輸出進行檢驗(BOOL類型,非0爲真)
5.查找指定字符串的範圍:rangeOfString
 NSRange range = [str3 rangeOfString:@"www"];//引用方法4中的str3
 if (range.length == 0) {
     NSLog(@"沒有找到對應的字符串");
 } else {
     NSLog(@"%@",NSStringFromRange(range));     
     //NSStringFromRange:將NSRange類型的結構體變量轉變成字符串對象,輸出檢驗
 }
6.字符串截取(獲取子字符串)
 NSString *str4 = [NSString stringWithFormat:@"Kevinisaman"];
(1)獲取給定下標之後的子串,包含指定下標對應的字符:substringFromIndex
 NSString *subString1 = [str4 substringFromIndex:11];
 NSLog(@"subString1: %@", subString1);
(2)獲取給定下標之前的子串(從下標爲0開始),但是不包含指定下標對應的字符:substringToIndex
 NSString *subString2 = [str4 substringToIndex:5];
 NSLog(@"subString2: %@", subString2);
(3)獲取指定範圍內的子串:substringWithRange
 NSString *subString3 = [str4 substringWithRange:NSMakeRange(0, 5)];
 //NSMakeRange:創建一個NSRange類型的結構體
 NSLog(@"subString3: %@", subString3);
7.字符串拼接:stringByAppendingString 或者 stringByAppendingFormat
 NSString *str5 = [NSString stringWithFormat:@"lanou"];
(1)lanou 後拼接 henan
 NSString *combine1 = [str5 stringByAppendingString:@"henan"];
 NSLog(@"combine1: %@", combine1);
(2)lanou 後拼接 henan9ban
 NSString *combine2 = [str5 stringByAppendingFormat:@"%@", @"lanouhenan9ban"];
 NSLog(@"combine2: %@", combine2);
8.替換字符串:stringByReplacingOccurrencesOfString 
 或者 stringByReplacingCharactersInRange
 NSString *str6 = [NSString stringWithFormat:@"lanououououisabigcompany"];
(1)將 ou 替換爲 uo
 NSString *replace1 = [str6 stringByReplacingOccurrencesOfString:
 @"ou" withString:@"uo"];
 NSLog(@"replace1:%@", replace1);//控制檯輸出進行檢驗
(2)將第一個 ou 替換爲 uo
 NSString *replace2 = [str6 stringByReplacingCharactersInRange:
 NSMakeRange(3, 2) withString:@"uo"];
 NSLog(@"replace2:%@", replace2);//控制檯輸出進行檢驗
9.字符串比較:compare
 NSComparisonResult result = [@"lanou" compare:@"oulan"];
 NSLog(@"%ld", result);//控制檯輸出進行檢驗
10.字符串和數值類型轉換
(1)@"123", 將字符串轉化爲整數123.
 int value = [@"   123abc" intValue];
 NSLog(@"%d", value);//控制檯輸出進行檢驗
(2)將數字轉爲字符串對象
 NSString *str = [NSString stringWithFormat:@"%d", 123];

 NSLog(@"%@", str);//控制檯輸出進行檢驗

11.字符串轉換大小寫
(1)將@"lan OU"全部轉爲大寫:uppercaseString
 NSString *stra = [@"lan OU" uppercaseString];
 NSLog(@"%@", stra);
(2)將@"lan OU"全部轉爲小寫:lowercaseString
 NSString *strb = [@"lan OU" lowercaseString];
 NSLog(@"%@", strb);
(3)將@"lan OU"每個單詞的首字母大寫:capitalizedString
 NSString *strc = [@"lan OU" capitalizedString];
 NSLog(@"%@", strc);

二 NSMutableString 是 NSString 的子類,所以它繼承了NSString的全部內容,當然也包括上面
的方法,下面介紹一些它獨有的方法,因爲 NSMutableString 是可變字符串,所以方法都是在原字符
串的基礎上進行修改
 NSMutableString *str = [NSMutableString stringWithFormat:@"lanouhenan"];
1.在原字符串str基礎上拼接Frank:appendFormat
 [str appendFormat:@"Frank"];
 [str appendFormat:@"%@",@"Frank"];
2.在原字符串str基礎上拼接Frank
 [str appendString:@"Frank"]; 
 NSLog(@"%@", str);//控制檯輸出進行檢驗
3.刪除原字符串,在原字符串基礎上刪除henan.
 [str deleteCharactersInRange:NSMakeRange(5, 5)];
 NSLog(@"%@", str);//控制檯輸出進行檢驗
4.插入字符串,在原字符串基礎上插入henan
 [str insertString:@"henan" atIndex:5];
 NSLog(@"%@", str);//控制檯輸出進行檢驗
5.替換字符串,在原字符串基礎上將第一個Frank替換成Kevin
 [str replaceCharactersInRange:NSMakeRange(10, 5) withString:@"Kevin"];
 NSLog(@"%@", str);//控制檯輸出進行檢驗</span>






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章