您的位置:首页 > 移动开发 > Objective-C

Objective-C中可变与不可变字符串的学习

2015-07-17 20:21 417 查看
为了巩固学习,脱离智能提示,不是在xcode中编辑,是在文本格式下创建

不可变字符串

1.创建对象

NSString *str1 = [[NSString alloc] initWithFormat:@"abcdefg%d",123];//根据指定格式创建字符串对象

NSLog(@"%@",str1);

NSString *str2 = [NSString stringWithFormat:@"%d",123];

NSLog(@"%@",str2);

2.根据已有字符串创建对象

//以下方法适合在子类可变字符串中使用,可将一个已有的不可变字符串对象转换为可变字符串
NSString *str3 = [[NSString alloc]initWithString:@"haha"];

NSString *str4 = [NSString stringWithString:@"haha"];

将c语言字符串转成oc的字符串对象,同时要指定编码格式,默认使用NSUTF8StringEncoding

char *str =
"okokokokok";

NSString *str5 = [NSString alloc]initWithCString:cStr
encoding:NSUTF8StringEncoding];

NSString *str6 = [NSString stringWithCString:cStrencoding:NSUTF8StringEncoding];

3.获取某个字符穿串对象的长度

NSUInteger length = [str8length];

NSLog(@"%ld",length);

4.根据指定下标获取对应字符串对象的字符

for (inti = 0;i < length;i++){

      NSLog(@"%c",[str8characterAtIndex:i]);

}

5.字符串对象的大小写转换

先创建一个对象

NSString *str9 =@"Welcome to China";

NSLog(@"%@",str9);

转换成大写字符串

NSString *upperStr = [str9uppercaseString];

NSLog(@"%@",upperStr);

转换成小写字符串

NSString *lowerStr = [upperStrlowercaseString];

NSLog(@"%@",lowerStr);

转换成首字母大写的字符串

NSString *capitalStr = [str9capitalizedString];

NSLog(@"%@",capitalStr);

6.字符串拼接

一.将指定的参数字符串拼接在消息接收字符串对象的后面,返回新的结果字符串,原字符串不改变

NSString *str10 = [str9
stringByAppendingString:str8];

NSLog(@"%@",str10);

二.拼接指定的字符串,返回拼接结果,灵活度较高

NSString *str11 = [str9
stringByAppendingFormat:@"%d+%d",1,2];

NSLog(@"%@",str11);

打印结果就为Welcome to China1+2;

7.判断指定字符串是否包含某个前缀字符串

BOOL result = [@"http://www.apple.com"
hasPrefix:@"http"];//后缀即把hasPrefix 换成 hasSuffix

NSLog(@"%@",result ?@"YES":@"NO");

8.获取参数字符串在指定字符串中的范围,用NSRange结构体类型描述,结构体包含两个成员,起始下标location,长度length,如果存在,length不为0,反之为0;command + 鼠标左键可以跳转到.h文件,如下图



NSString *str12 =
@"this is a test string";

NSRange range = [str12
rangeOfString:@"test"];

NSLog(@"%@",NSStringFromRange(range));

9.截取字符串,从指定下标开始,包含指定下标,返回到字符串结束的子字符串

NSString *subStr1 = [str12
substringFromIndex:3];   //从下标为3的字符开始截取,直到结束

NSLog(@"%@",subStr1);

10.从字符串开头截取到指定下标为止,不包含指定下标

NSString *subStr2 = [str2
substringToIndex:3];

可变字符串

//NSMutableString可变字符串,为NSString 的子类,即在不可变字符串类的基础上加入了增,删,改的特性。

NSMutableString *mutableStr1 = [NSMutableString string];

[mutableStr1 setString:@"how"];

1.拼接

[mutableStr1 appendFormat:@"%d",66];  

2.插入字符串

[mutableStr1 insertString:@"duang",atIndex:0];  //在指定下标插入给定的字符串

3.替换已有字符串

[mutableStr1 replaceCharactersInRange:NSMakeRange(1,2)withString:@"hehe"];  //将指定范围内的字符替换成给定的字符串

4.删除字符串

[mutableStr1 deleteCharactersInRange:NSMakeRange(1,5)];
//删除指定范围内的字符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息