OC中的字符串
来源:互联网 发布:艾力欧与知世怀孕虐文 编辑:程序博客网 时间:2024/04/29 11:20
1.字符串概述
字符串对象分为可变字符串和不可变字符串,在使用一个字符串对象之前,首先是创建以及初始化该对象
2.字符串相关有用的数据类型
NSRange range = NSMakeRange(10, 3); NSRange range; range.location = 10; range.length =3; NSRange range = {10,3};
3.创建字符创
创建字符串对象
//1.初始化一个字符串对象 NSString *string1 = @"ibokanwisdom"; NSString *string2 = [NSString stringWithFormat:@"Jack"];// NSString *string3 = [NSString stringWithFormat:@"%@%@",@"Jack",@"Rick"];// NSString *string3 = [[NSString alloc] initWithString:@"ibokanwisdom"]; //使用NSString的类方法来创建字符串 + (instancetype)stringWithFormat:@"格式化标识符" NSString *string4 = [NSString stringWithFormat:@"%@,%d,%f,hi guy",@"Rick",5,5.5];//可以接收多个字符串// NSLog(@"string4 = %@",string4); NSString *string5 = @"Rick"; NSString *string6 = @"666"; NSString *string7 = [NSString stringWithFormat:@"%@%@",string5,string6]; NSLog(@"%@",string7);
读取本地文件路径与网络字符串
//从本地文件读取字符串 NSString *path1 = @"/Users/apple/Desktop/OC_04_02/hello.html"; NSError *error; NSString *string8 = [NSString stringWithContentsOfFile:path1 encoding:NSUTF8StringEncoding error:&error];// NSLog(@"string8 = %@, error = %@",string8,error); //从网络读取字符串 NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; error = nil;// NSString *string9 = [NSString stringWithContentsOfURL:url encoding:4 error:&error];// NSLog(@"string9 = %@",string9);
4.NSString的常用方法
//字符串的操作 NSString *string10 = @"你是逗比么,我都受不了你了"; //字符串长度 NSUInteger length = string10.length; NSLog(@"%lu",length); //字符串的截取 NSString *subString1 = [string10 substringToIndex:5]; //获取字符串开头到字符串的to的位置的字符串内容,不包括to位置的字符串 NSLog(@"subString1 = %@",subString1); NSString *subString2 = [string10 substringFromIndex:6]; //获取字符串从from的位置到结尾的字符串,包括from 的位置 NSLog(@"%@",subString2); NSString *subString3 = [string10 substringWithRange:NSMakeRange(2, 2)]; //获取字符串中的某个字符 NSString *string11 = @"abcdefg"; char c = [string11 characterAtIndex:0]; //根据字符串中的位置 index来获得一个字符,注意字符串的索引是从 0 开始。 NSLog(@"%c",c);
//字符串的比较,如何判断两个字符串是否相等 if (subString2 == subString3) { //内容和指针都相等的时候,才成立 NSLog(@"subString2 和 subString3 相等"); } else{ NSLog(@"subString2 和 subString3 不相等"); } /* 如何让两个字符串的指针 和 内容都相同? 浅拷贝 和 深拷贝 浅拷贝:对象和拷贝的内容公用一份实体,仅仅是引用的变量名称不一样。 深拷贝:源对象和拷贝的对象相互独立,其中任何一个对象的改动都不会对另一个对象造成影响。 */ NSString *subString4 = [NSString stringWithString:subString2]; //stringWithString 为浅拷贝 if (subString4 == subString2) { //内容和指针都相等的时候,才成立 NSLog(@"subString4 和 subString2 相等"); } else{ NSLog(@"subString4 和 subString2 不相等"); } //在实际开发过程中,我们通常只需要比较两个字符串的内容是否想相等 if ([subString2 isEqualToString:subString4]) { NSLog(@"subString4 和 subString2 内容相等"); } else{ NSLog(@"subString4 和 subString2 内容不相等"); } //比较两个字符串的大小 NSString *cmpString1 = @"hehehehe"; NSString *cmpString2 = @"hahaha"; //C p143 NSComparisonResult result = [cmpString1 compare:cmpString2]; switch (result) { case NSOrderedAscending: { NSLog(@"cmpString1 < cmpString2,升序"); break; } case NSOrderedSame: { NSLog(@"cmpString1 = cmpString2"); break; } case NSOrderedDescending: { NSLog(@"cmpString1 > cmpString2,降序"); break; } } //根据字符串拿到对应的range NSRange range = [string10 rangeOfString:@"逗比"]; NSLog(@"%@",[NSValue valueWithRange:range]); //只输出第一个遇到该字符串的位置 及 该字符串的长度 NSRange range1 = [string10 rangeOfString:@"你"]; NSLog(@"%ld,%ld",range1.location,range1.length); //判读字符串中是否有xx前缀 或 xx后缀 NSString *string12 = @"http://www.baidu.com"; if ([string12 hasPrefix:@"http://"]) { NSLog(@"含有此前缀"); } else{ NSLog(@"不含有此前缀"); } //判断是否为 .jpg 或 .png 后缀 NSString *string13 = @"xxxxx.jpg"; if ([string13 hasSuffix:@"jpg"] || [string13 hasSuffix:@"png"] ) { NSLog(@"包含此后缀"); } else{ NSLog(@"不包含此后缀"); } //字符串 拼接 NSString *string14 = @"www.baidu.com"; NSString *string15 = [@"http://" stringByAppendingString:string14]; //http://static.bigstockphoto.com/images/homepage/2016_popular_photo_categories.jpg NSString *string16 = @"http://static.bigstockphoto.com"; NSString *string17 = @"images/homepage/2016_popular_photo_categories.jpg"; NSString *string18 = [string16 stringByAppendingFormat:@"/%@",string17]; //连接两个字符串,并且第二个字符串是按一定格式传进来的 NSString *string19 = [string16 stringByAppendingPathComponent:string17]; NSString *imagePath = @"http://static.bigstockphoto.com/images/homepage/2016_popular_photo_categories.jpg"; imagePath = [imagePath lastPathComponent]; NSString *theImageName = @"Rick"; theImageName = [theImageName stringByAppendingPathExtension:@"png"]; //字符串的其他常用方法 //1.字符串的转换函数 NSString *str = @"111addd33"; int a1 = [str intValue]; NSLog(@"%d",a1); //2.字符串的大小写转换 NSString *str2 = @"aAabb"; NSString *str3 = [str2 uppercaseString]; //将字符全部改成大写 NSString *str4 = [str3 lowercaseString]; //将字符全部改成小写 NSString *str5 = [str4 capitalizedString]; NSString *str6 = [str2 stringByReplacingOccurrencesOfString:@"bb" withString:@"dd"]; NSString *str7 = [str2 stringByReplacingCharactersInRange:NSMakeRange(1, 2) withString:@"GG"]; NSString *str8 = @"aa-bb-cc-dd-ee"; NSArray *array = [str8 componentsSeparatedByString:@"-"]; //以separator 为分割符,将原字符串内容进行分割,分割得到的结果放到一个数组里面,作为返回值
5.可变字符串
// NSMutableString 可变字符串 NSMutableString *mString = [NSMutableString stringWithString:@"nihao"]; NSMutableString *mString1 = [NSMutableString stringWithFormat:@"%@",mString]; NSMutableString *mString2 = [NSMutableString stringWithContentsOfFile:@"" encoding:4 error:nil]; NSMutableString *mString3 = [NSMutableString stringWithContentsOfURL:[NSURL URLWithString:@""] encoding:NSUTF8StringEncoding error:nil]; //可变字符串独特的初始化方法,初始化一个空间为100的可变字符串 NSMutableString *mString4 = [[NSMutableString alloc] initWithCapacity:100]; //将C语言的字符串转换成OC的字符串// [[NSString alloc] initWithCharacters:<#(nonnull const unichar *)#> length:<#(NSUInteger)#>] NSMutableString *targetString = [NSMutableString stringWithString:@"呵呵,我靠"]; NSRange range = [targetString rangeOfString:@"靠"]; //替代 [targetString replaceCharactersInRange:range withString:@"**"]; //增 //在指定位置去插入一个字符串 [targetString insertString:@"ee" atIndex:3]; //在字符串末尾添加一个字符串 [targetString appendString:@"aaa"]; //在字符串的末尾添加多个字符串 [targetString appendFormat:@"%@%@",@"cc",@"dd"]; //删 [targetString deleteCharactersInRange:NSMakeRange(3, 2)];
0 0
- OC中的字符串
- OC中的字符串
- OC中的字符串
- OC菜鸟成长记-OC中的字符串
- OC中的字符串常用方法
- OC与Swift中的字符串
- OC中的字符串转换为C中的字符串
- Oc字符串
- OC字符串
- OC字符串
- OC 字符串
- oc字符串
- OC 字符串
- OC--字符串
- OC字符串
- OC 字符串
- OC字符串
- OC字符串
- CodeForces 631C Report
- 2056--求两矩形的交叉面积
- 2016年 疯一样的测试的解题报告
- commons-fileupload 图片上传示例
- 格兰特·凯特林:西方家族财富管理注重早期规划
- OC中的字符串
- 欢迎使用CSDN-markdown编辑器
- 文章标题
- Apache Commons fileUpload实现文件上传
- 文章标题
- 【Leetcode】之Binary Tree Level Order Traversal
- C-style string一些笔记
- 简单版Java访问MySQL数据库
- leetcode Partition List