OC學習(四)不可變字串類和可變字串類
阿新 • • 發佈:2019-02-16
今天系統性的學習了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>