標籤:
NSString,不可變字串,即建立以後內容和長度不可修改.
NSMutableString,可變字串,即建立以後內容還可以修改.
不可變字串(NSString)
建立字串
1 // 建立字串2 NSString *str1 = [[NSString alloc] initWithString:@"QQ"]; 3 NSString *str2 = [NSString stringWithString:@"WeChat"];4 // 字面量建立字串5 // 字面量也是文法糖 syntax sugar 簡化字串的建立過程6 NSString *str3 = @"人人";7 NSLog( @"%@", str3);
通常用字面量來建立字串.
字串的其他方法
1 // 字串長度 2 NSLog(@"length: %lu", str3.length); 3 // 取子串 4 NSString *str4 = @"iPhone6Plus"; 5 // fromIndex 從當前下標處取到字串結尾 包含當前下標 6 NSString *str5 = [str4 substringFromIndex:4]; 7 NSLog(@"%@", str5); 8 // toIndex 從字串開頭位置取到某個下標處結束 不包含當前下標 9 NSString *str6 = [str4 substringToIndex:4];10 NSLog(@"%@", str6);11 // withRange12 // 通過範圍結構體取子串13 NSString *str7 = [str4 substringWithRange:NSMakeRange(3, 4)];14 NSLog(@"%@", str7);15 16 // 拼接字串 可以嵌套使用17 NSString *str8 = [str4 stringByAppendingString:@"5288"];18 NSLog( @"%@", str8);19 20 // 替換字串 可以嵌套使用21 NSString *str9 = [str8 stringByReplacingOccurrencesOfString:@"6Plus" withString:@"7s"];22 NSLog( @"%@", str9);23 24 // 字串相等判斷25 NSString *str10 = @"123";26 NSString *str11 = @"123";27 if (str10 == str11) {28 NSLog(@"兩個字串對象的地址相同");29 }30 // if ([str10 isEqualToString:str11]) {31 NSLog(@"兩個字串對象的內容相同");32 }33 34 // 判斷首碼和尾碼35 if ([str9 hasPrefix:@"i"]) {36 NSLog(@"有首碼");37 }38 if ([str9 hasSuffix:@"88"]) {39 NSLog(@"有尾碼");40 }41 if ([str9 hasPrefix:@"iPhone7s5288"]) {42 NSLog(@"有首碼");43 }44 if ([str9 hasSuffix:@"iPhone7s5288"]) {45 NSLog(@"有尾碼");46 }47 48 // 字串比較49 // ASC 升序 DESC 降序50 NSString *str12 = @"iPhone6";51 NSString *str13 = @"iPhone5s";52 // 定義一個比較結果變數 用來儲存字串比較結果53 NSComparisonResult result = [str12 compare:str13];54 if (result == NSOrderedAscending) {55 NSLog(@"升序");56 } else if (result == NSOrderedDescending) {57 NSLog(@"降序");58 } else {59 NSLog(@"相同");60 }
萬能轉換公式
1 NSString *str14 = [NSString stringWithFormat:@"%@ lol %ld %f", str13, 100L, 3.1415];2 NSLog(@"%@", str14);
可變字串(NSMutableString)
// 建立可變字串 NSMutableString *mstr = [NSMutableString string]; // 可變字串拼接 [mstr appendString:@"iPhone"]; // 插入 [mstr insertString:@"Andriod" atIndex:2]; NSLog( @"%@", mstr); // 刪除 [mstr deleteCharactersInRange:NSMakeRange(2, 7)]; NSLog( @"%@", mstr); /* * 可變和不可變的區別 * 不可變對象的操作 都是產生了新的對象 可變對象都是在原對象的基礎上進行了操作 */
Objective-C中字串類