oc字符串有两种:NSString(不可变的字符串)和NSMutableString(可变的字符串),其中NSString是NSMutableString的父类.
//NSString
//创建
NSString *str1 =@"mary"; //@""只能用于创建不可变的字符串
NSString *str2 = [NSStringstringWithFormat:@"%@", str1]; //格式化的创建字符串
NSString *str2_2 = [[NSStringalloc] initWithFormat:@"%@", str1]; //格式化的创建字符串,和上面的str2一样
//c字符串
char *strC = "apple";
//把c的字符串转为oc的字符串
NSString *str3 = [NSString stringWithUTF8String:strC];
NSString *str3_2 = [NSString stringWithUTF8String:"apple2"];
//把oc的字符串转为c的字符串
const char *cStr = [str3 UTF8String]; //const表示得到的是字符串常量
//获取字符串的长度
NSString *str5 = @"apple";
NSLog(@"长度:%lu",str5.length); //长度:5
//根据索引的位置获取字符串中的字符
char ch = [str5 characterAtIndex:3]; //从0开始,结果是l
//根据范围在大串中获取小串(包含开始的索引位置的字符)
NSString *str7 = @"hello world";
NSString *subStr1 = [str7 substringWithRange:NSMakeRange(7, 3)];//结果是orl
//从指定的索引开始截取到最后(包含开始的索引位置的字符)
NSString *subStr2 = [str7 substringFromIndex:3];//结果是lo world
//从开始截取到指定的位置(不包含截止索引位置的字符)
NSString *subStr3 = [str7 substringToIndex:7];//结果是hello w
//比较两个字符串是否相等
[str8 isEqualToString:str9]或者[str8 isEqualTo:str9]返回值都是BOOL型的
[str8 compare:str9]返回值是NSOrderedAscending(升序)/NSOrderedDescending(降序)/NSOrderedSame(相同)
[str8 caseInsensitiveCompare:str9] == NSOrderedSame表示两个字符串相等(不区分大小写),若是不等于NSOrderedSame,就表示两者不相等
//把字符串中小写字母转换为大写字母
NSString *str10 = [str uppercaseString];
//大写转小写
NSString *str11 = [str lowercaseString];
//把字符串中首字母大写,其余的字母小写
NSString *str12 = [str capitalizedString];
//判断某个字符串是否以特定的字符串作为开头
[str hasPrefix:@"www"] 返回值为BOOL类型
//判断某个字符串是否以特定的字符串作为结尾
[str13 hasSuffix:@"com"]返回值为BOOL类型
//遍历字符串中所有的字符
for (int i=0; i<str.length; i++) {
NSLog(@"第 %i 个字符为:%c",i+1,[str characterAtIndex:i]);
}
//不可变的字符串拼接,返回一个拼接之后新的字符串
NSString *str4 = @"hello";
NSString *str5 = [str4 stringByAppendingString:@" world"]; //结果是hello world
//字符串分割
NSString *str10 = @"http://astro.sina.com.cn/zt_d/fate_ast_month";
//根据//进行分割,分割的结果放到数组当中
NSArray *ary1 = [str10 componentsSeparatedByString:@"//"];
NSLog(@"根据//分割之后的数组是:%@",ary1);
//得到的结果是("http:","astro.sina.com.cn/zt_d/fate_ast_month")
//NSMutableString
//创建可变的字符串
//创建一个空的可变的字符串
NSMutableString *str1 = [NSMutableString string];
//创建一个非空的可变的字符串
NSMutableString *str2 = [NSMutableString stringWithString:@"apple"];
//NSString 中用到的方法,在这里同样适用
NSMutableString *str3 = [NSMutableString stringWithFormat:@"%@",str2];
//可变的字符串拼接,没有返回值,直接拼接到可变字符串的后面
NSMutableString *str6 = [NSMutableString stringWithString:@"hello"];
[str6 appendString:@" world"]; //结果是hello world
//在可变字符串的某个位置插入一个字符串
NSMutableString *str7 = [NSMutableString stringWithString:@"aklsdhw"];
[str7 insertString:@"123" atIndex:4];//结果是akls123dhw
//用一个新的字符串替代原有的可变字符串中某一段字符串(替换的和原来的个数不一定相等 )
NSMutableString *str8 = [NSMutableString stringWithString:@"ashqwix"];
[str8 replaceCharactersInRange:NSMakeRange(2, 3) withString:@"12543"];//结果是
as12543ix
//删除可变字符串中某个范围中的字符串
NSMutableString *str9 = [NSMutableString stringWithString:@"askldnwuei"];
[str9 deleteCharactersInRange:NSMakeRange(4, 5)];//结果是askli