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文件,如下图
![](https://img-blog.csdn.net/20150717212302199?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
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)];
//删除指定范围内的字符
不可变字符串
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)];
//删除指定范围内的字符
相关文章推荐
- ASP中让Replace替换不区分大小写的方法
- ReplaceSaveRemoteFile 替换、保存远程图片 的代码
- 批处理BAT替换与截取字符串的用法t1=%a:~3%是什么意思
- 批量文件查找替换功能的vbs脚本
- SQL SERVER使用REPLACE将某一列字段中的某个值替换为其他的值
- Shell脚本学习指南之查找与替换介绍
- 查找mysql字段中固定字符串并替换的几个方法
- php 全文搜索和替换的实现代码
- jQuery对指定元素中指定字符串进行替换的方法
- jquery live()调用不存在的解决方法
- asp.net替换和恢复html特殊字符
- Android 监听apk安装替换卸载广播的实现代码
- 全文搜索和替换
- juqery 学习之五 文档处理 包裹、替换、删除、复制
- 初学JS的的小例子 javascript replace高亮替换
- MySQL 替换某字段内部分内容的UPDATE语句
- php替换字符串中间字符为省略号的方法
- php 替换文章中的图片路径,下载图片到本地服务器的方法
- JavaScript替换当前页面的方法
- php字符串替换函数substr_replace()用法实例