NSString的常用方法
NSString * str = @"abcd";//不可变字符串
//1.把其他类型转换成OC的字符串,使用stringWithFormat方法
int a = 1234;
NSString *str1 = [NSString stringWithFormat:@"%d",a];
char c1 = '1';
NSString *str2 = [NSString stringWithFormat:@"%c",c1];
//2.把字符串转换成对应的数值类型intValue/doubleValue/floatValue
int a2 = [str1 intValue];//方法可以使用
int a1 = str2.intValue;//.语法也可以使用
//3.@字符的作用:把C语言的某些类型,转换为OC的对应的对象类型
char *str3 = "abcde";
NSString *str4 = @(str3);
NSString *str5 = [NSString stringWithFormat:@"%s",str3];
//4.字符串的比较 相同的代码分配一块内存
NSString *str6 = [NSString stringWithFormat:@"abcd123"];
NSString *str7 = [NSString stringWithFormat:@"abcd123"];
//==比较内存地址是否相等,不能用于比较OC的字符串
//使用%p打印内存地址
//比较字符串的内容是否相同使用方法 isEqualToString
if([str6 isEqualToString:str7])
{
NSLog(@"相等");
}
else
{
NSLog(@"不等");
}
//5.字符串比较大小关系要用compare方法
//只比较第一个就给出结果;
NSString *str8 = @"9abc";
NSString *str9 = @"123aaa";
if ([str8 compare:str9] == NSOrderedSame)//返回值 相等
{
NSLog(@"相等");
}
else if ([str8 compare:str9] == NSOrderedAscending)//返回值 升序
{
NSLog(@"升序");
}
else
{
NSLog(@"降序");
}
//6.字符串的字符个数
NSString *str10 = @"abcde";
NSLog(@"%lu",str10.length);//此处是调用length方法
NSLog(@"%lu",[str10 length]);
//7.不可变字符串的追加,会产生一个新的对象,内存地址不一样
NSString *str11 = @"abc";
NSLog(@"%p",str11);
str11 = [str11 stringByAppendingString:@"def"];
NSLog(@"%p",str11);
NSLog(@"%@",str11);
str11 = [str11 stringByAppendingFormat:@"%d",123];//加上格式;
NSLog(@"%@",str11);
//8.截取字符串
NSString *str12 = @"abcdefghijk";
NSString *substr1 = [str12 substringFromIndex:1];//从b(index)开始以后全部
NSLog(@"%@",substr1);
NSString *substr2 = [str12 substringToIndex:4];//截取从0到index-1的字符串
NSLog(@"%@",substr2);
//NSRange包含位置和长度,通过NSMakeRange函数构造
NSString * substr3 = [str12 substringWithRange:NSMakeRange(3, 5)];
NSLog(@"%@",substr3);