今天系統性的學習了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>
OC學習(四)不可變字符串類和可變字符串類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.