1、OCSting和CString的区别
使用alloc创建一个OC字符串
1、直接把一个NSString通过init方法赋值给我们新创建的NSString字符串
NSString *tempString = @"hello";//把一个字符串常量赋予一个字符串指针
NSLog(@"tempString is %@",tempString);//OC字符串的打印不能用%s,而要用%@(实际上%@在OC里面什么都能打)
NSString *string1 = [[NSString alloc] initWithString:tempString];
NSLog(@"string1 is %@",string1);
2、使用一个C语言的字符串通过init方法赋值给我们新创建的NSString字符串
NSString *string2 = [[NSString alloc] initWithCString:"i am pig"encoding:NSUTF8StringEncoding];
NSLog(@"string2 is %@",string2);
3、通过格式化赋值给我们新创建的NSString字符串(有一个拼接的作用)
NSString *string3 = [[NSString alloc] initWithFormat:@"%@ %@",@"i am",tempString];
NSLog(@"string3 is %@",string3);
NSString *string4 = [[NSString alloc] initWithFormat:@"%@",@"我是好人"];
2、NSString的所有方法
A、使用类方法创建OC字符串(这个才是我们常用的创建方法)
1、使用字符串直接赋值
NSString *tempString = @"hello";
NSString *string5 = [NSString stringWithString:tempString];
NSLog(@"string5 is %@",string5);
2、使用C语言字符串赋值
NSString *string6 = [NSString stringWithCString:"我爱你" encoding:NSUTF8StringEncoding];
NSLog(@"string6 is %@",string6);
NSString *string7 = [NSString stringWithFormat:@"我是%@",@"猪"];
NSLog(@"string7 is %@",string7);
B、字符串的拼接
NSString *string8 = @"你好";
NSString *string9 = @"北京";
NSString *catString = [NSString stringWithFormat:@"%@,%@",string8,string9];
NSLog(@"catString is %@",catString);
NSString *catSecondString =[catString stringByAppendingString:@"我来了"];
NSLog(@"catSecondString is %@",catSecondString);
NSString * catSecondString2=[NSString stringWithFormat:@"今天天气不错"];
NSString *catSecondString3= [catSecondString2 stringByAppendingString:@"我们不上课"];
NSLog(@"catSecondString3 %@",catSecondString3);
C、字符串长度
NSString *aString = @"收拾收拾";
NSInteger stringLength = [aString length];
NSLog(@"astring 的长度是 %lu",stringLength);
D、判断字符串是否相等 关键词:isEqualToString,调用这个方法的是一个字符串对象,参数也是一个字符串对象,返回值是一个BOOL值(YES/NO),所谓bool值就是int值,可以用%d打印
NSString *first = @"我2";
NSString *second = @"我2";
BOOL isEqual = [first isEqualToString:second];
NSLog(@"%d",isEqual);
E 、字符串比较 关键词compare,
NSString *string1 = @"我是羊";
NSString *string2 = @"我是羊";
int result = [string1 compare:string2];
NSLog(@"%d",result);
E.a不区分大小写的字符串比较 关键词compare: options:
NSString *str1 = @"abcd";
NSString *str2 = @"ABCD";
int result = [str1 compare:str2 options:NSCaseInsensitiveSearch];
NSLog(@"%d",result);
F、大小写转换
NSString *str1 = @"abcd";
NSString *uperStr = [str1 uppercaseString];//小写转大写
NSLog(@"\nuper is %@ \nolder is %@",uperStr,str1);
NSString *str2 = @"ABCD";
NSString *lowerStr = [str2 lowercaseString];//大写转小写
NSLog(@"\nlower is %@ \nolder is %@",lowerStr,str2);
NSString *str3 = @"sAfdnl";
NSString *capStr = [str3 capitalizedString];//首字母大写
NSLog(@"\ncap is %@ \nolder is %@",capStr,str3);
G、字符串查找
NSString *str = @"我们都是大好人,大好人,大好人。";
G.a 接下来我想查找“大好人”上面字符串里面有没有
NSRange range = [str rangeOfString:@"大好人"];//调用这个方法的是一个字符串对象变量,参数是想要查找的内容字符串,结果是在调用的字符串里面有没有,在哪儿有
if(range.location == NSNotFound)//如果成功,说明没有
{
NSLog(@"没找着");
}
else
{
NSLog(@"location is %d,length is %d",range.location,range.length);
}
//NSRange里面有两个变量,一个是位置index,一个是长度length. NSRange不是对象,是个结构体
G.b 从后向前找
NSRange range1 = [str rangeOfString:@"大好人" options:NSBackwardsSearch];
NSLog(@"location is %d,lenth is %d",range1.location,range1.length);
G.c 判断前后缀
NSString *str = @"1234567890";
//前缀 关键词hasPrefix
BOOL isHave21 = [str hasPrefix:@"12"];
if(isHave21 == YES)
{
NSLog(@"你赢了");
}
else
{
NSLog(@"你输了");
}
//后缀 关键词hasSuffix
BOOL isHave09 = [str hasSuffix:@"90"];
if(isHave09 == YES)
{
NSLog(@"找到了");
}
else
{
NSLog(@"木有怎么办");
}
H、字符串提取(截出来)
NSString *str = @"123321234567";
H.a 从头截起到某一个index(下标)该index不截
NSString *topStr = [str substringToIndex:4];
NSLog(@"%@",topStr);
H.b 从某一个index截起,到最后为止,该index截
NSString *endStr = [str substringFromIndex:8];
NSLog(@"%@",endStr);
H.c 截某一段,使用NSRange,location那个index截
// NSString *rangeStr = [str substringWithRange:NSMakeRange(4, 4)];//制作一个NSRange使用NSMakeRange(location,length)
// NSLog(@"%@",rangeStr);
//
// NSRange range = [str rangeOfString:@"1234"];
// if(range.location == NSNotFound)
// {
// NSLog(@"什么也不干");
// }
// else
// {
// NSString *finalStr = [str substringWithRange:range];
// NSLog(@"%@",finalStr);
// }
3、NSMutableString的所有方法
//NSMutableString在使用时最好不要直接赋值(=@“”),因为这个NSMutableString是可变字符串,他的内容应该都是append进去的
// //alloc创建 Mutable的东西都要初始化
// NSMutableString *mutableStr = [[NSMutableString alloc] initWithCapacity:0];//参数capacity后面写多少都不会报错,但是一般都先写0
//
// //类方法创建
// NSMutableString *mutableStrClass = [NSMutableString stringWithCapacity:0];
//增(赋值)
/*
1、创建可变字符串对象
2、向这个对象进行添加
*/
NSMutableString *str = [NSMutableString stringWithCapacity:0];//创建对象
[str appendString:@"123"];//直接添加
NSLog(@"%@",str);
[str appendFormat:@"%d",11];//格式化添加
NSLog(@"%@",str);
[str insertString:@"我" atIndex:3];//向index的位置添加字符串
NSLog(@"%@",str);
//删(删的还是自己)
[str deleteCharactersInRange:NSMakeRange(2, 3)];//删除可变字符串中的一个区间的字符串
NSLog(@"%@",str);
//改
[str setString:@"abcdefg"];//全改
NSLog(@"%@",str);
[str replaceCharactersInRange:NSMakeRange(3, 2) withString:@"一二三四"];//把可变字符串中的一段改为第二个参数的字符串内容
NSLog(@"%@",str);