Objective-C中字符串类
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 // withRange 12 // 通过范围结构体取子串 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); /* * 可变和不可变的区别 * 不可变对象的操作 都是产生了新的对象 可变对象都是在原对象的基础上进行了操作 */