Main.m
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { /*___________________________NSString(不可变字符串)______________________________*/ //------------1.字符串的创建-------------------- //创建字符串常量 NSString *string1 = @"abc"; string1 = @"wxhl"; NSLog(@"string1:%@",string1); //alloc常见字符串 NSString *string2 = [[NSString alloc] initWithString:@"hello"]; NSString *string3 = [[NSString alloc] initWithFormat:@"hello %@",@"world"]; NSLog(@"string2:%@",string2); NSLog(@"string3:%@",string3); //字符串的拼接 NSString *s1 = @"zhansan"; NSString *s2 = @"lisi"; NSString *s3 = @"wangwu"; NSString *string4 = [[NSString alloc] initWithFormat:@"%@ %@ %@",s1,s2,s3]; NSLog(@"string4:%@",string4); float weight = 76.8; NSString *string5 = [[NSString alloc] initWithFormat:@"%@ 体重:%.2f",s1,weight]; NSLog(@"string5:%@",string5); //使用类方法创建 NSString *str1 = [NSString stringWithString:@"test"]; NSString *str2 = [NSString stringWithFormat:@"hello %@",@"world"]; NSLog(@"str1:%@ str2:%@",str1,str2); //------------2.字符串的比较-------------------- NSString *string6 = @"abc"; NSString *string7 = @"aBc"; //判断两个指针地址是否相同 if (string6 == string7) { NSLog(@"两个指针地址相同"); } //判断两个字符串的内容是否相同,区分大小写的 if (![string6 isEqualToString:string7]) { NSLog(@"内容不相同"); } //注意:此处在堆区创建了对象 NSString *string8 = [[NSString alloc] initWithFormat:@"abc%@",@"def"]; NSString *string9 = [[NSString alloc] initWithFormat:@"abc%@",@"def"]; if (string8 == string9) { NSLog(@"两个指针内存地址相同"); } if ([string8 isEqualToString:string9]) { NSLog(@"string8和string9内容相同"); } //没有在堆区创建对象 NSString *string10 = [[NSString alloc] initWithString:@"1234"]; NSString *string11 = [[NSString alloc] initWithString:@"1234"]; if (string10 == string11) { NSLog(@"两个指针地址相同"); } //比较字符串的大小compare,区分大小写 NSString *string12 = @"abc"; NSString *string13 = @"abC"; NSComparisonResult result = [string12 compare:string13]; if (result == NSOrderedAscending) { NSLog(@"string12 < string13"); }else if (result == NSOrderedSame) { NSLog(@"string12 == string13"); }else if (result == NSOrderedDescending) { NSLog(@"string12 > string13"); } //不区分大小写比较 NSComparisonResult result1 = [string12 caseInsensitiveCompare:string13]; if (result1 == NSOrderedAscending) { NSLog(@"string12 < string13"); }else if (result1 == NSOrderedSame) { NSLog(@"string12 == string13"); }else if (result1 == NSOrderedDescending) { NSLog(@"string12 > string13"); } //------------3.字符串的其他用法-------------------- NSString *string14 = @"12345678"; //取得字符串的长度 NSUInteger len = [string14 length]; NSLog(@"len:%ld",len); //转换大小写 NSString *string15 = @"hElLo world"; //uppercaseString将字符串转换成大写 NSLog(@"upper:%@",[string15 uppercaseString]); //lowercaseString将字符串转换成小写 NSLog(@"lower:%@",[string15 lowercaseString]); //capitalizedString将首字母转换成大写 NSLog(@"capital:%@",[string15 capitalizedString]); //将字符串转化成基本数据类型 NSString *string16 = @"12.3"; //错误 // float f = (float)string16; // [string16 integerValue] 转换成整型 float f1 = [string16 floatValue]; NSLog(@"f1:%f",f1); NSString *string17 = @"1"; BOOL s = [string17 boolValue]; //字符串的截取 NSString *string18 = @"1234567qwertyu"; //方式1:substringToIndex:从字符串的开头截取到指定下标的地方,并且不包括指定位置的字符 NSString *subString1 = [string18 substringToIndex:7]; NSLog(@"subString1:%@",subString1); //方式2:substringFromIndex:从指定字符开始截取到字符串的结尾,并且包括指定字符 NSString *subString2 = [string18 substringFromIndex:7]; NSLog(@"subString2:%@",subString2); //方式3:substringWithRange 截取指定的字符串 NSRange range = {1,6}; //1.表示截取的位置下标,6:截取的长度 NSString *subString3 = [string18 substringWithRange:range]; NSLog(@"subString3:%@",subString3); //字符串的追加 NSString *string19 = @"hello"; //在字符串string19后面追加字符串,返回一个新的字符串 NSString *string20 = [string19 stringByAppendingString:@" world"]; NSLog(@"string20:%@",string20); NSString *string22 = [string19 stringByAppendingFormat:@" %@",@"world"]; NSLog(@"string22:%@",string22); // NSString *string21 = [NSString stringWithFormat:<#(NSString *), ...#>] // NSString *string21 = [NSString alloc] initWithFormat:<#(NSString *), ...#> //字符串查找 NSString *string23 = @"www.baidu.com"; //查找字符串中是否存在@“baidu” NSRange rg = [string23 rangeOfString:@"baidu"]; // NSLog(@"location:%ld length:%ld",rg.location,rg.length); //如果没有找到,location的值为NSNotFound if (rg.location != NSNotFound) { NSLog(@"location:%ld length:%ld",rg.location,rg.length); } //如果给你一个字符串:@“123456@qq.com”,让你判断是否为邮箱 //只需要查找“@” //通过下标取字符串中的字符 NSString *string24 = @"abcdefg"; unichar c = [string24 characterAtIndex:3]; NSLog(@"%c",c); /*___________________________NSMutableString(可变字符串)__________________________*/ // NSMutableString *mutStr1 = @"abc"; 错误的,此处实质上是创建了一个不可变字符串 //插入 NSMutableString *mutString1 = [[NSMutableString alloc] initWithString:@"hello "]; //insertString 在原有的字符串上插入字符串 [mutString1 insertString:@"world" atIndex:6]; NSLog(@"mutString1:%@",mutString1); //追加 [mutString1 appendString:@" everyone"]; NSLog(@"mutString1:%@",mutString1); //删除 NSMutableString *mutString2 = [[NSMutableString alloc] initWithString:@"可变字符符符串"]; //删除“符符” NSRange deletRg = [mutString2 rangeOfString:@"符符"]; //如果找到了 if (deletRg.location != NSNotFound) { [mutString2 deleteCharactersInRange:deletRg]; NSLog(@"mutString2:%@",mutString2); } //替换 NSMutableString *mutString3 = [[NSMutableString alloc] initWithString:@"kebian字符串"]; //先找到需要替换的字符串 NSRange replaceRg = [mutString3 rangeOfString:@"kebian"]; //replaceCharactersInRange 在原有的字符串上替换字符串 if (replaceRg.location != NSNotFound) { [mutString3 replaceCharactersInRange:replaceRg withString:@"可变"]; NSLog(@"mutString3:%@",mutString3); } return 0; }