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;
}