OC基础-OC三大基本数据结构-NSString
来源:互联网 发布:淘宝客服名字大全 编辑:程序博客网 时间:2024/06/05 07:27
一、OC三大基本数据结构概述
1.NSString: OC中的字符串。
基类:NSString: 字符串,不可变字符串,对象一旦创建,字符串的长度和内容不可变。
子类:NSMutableString: 可变字符串。
2.NSArray: OC中的数组。数组对象存储的地址是有顺序的元素。
基类: NSArray:数组
子类: NSMutableArray 可变数组
3.NSDicstionary: OC中的字典。字典对象存储的地址是没有顺序的键值对。与数组类似,但又区别于数组。
基类:NSDictionary:字典
子类:NSMutableDictionary: 可变字典
二、NSString的使用
1.C中的字符串和OC的字符串
OC完全兼容C,所以在OC中是可以使用C中的字符串的,但是OC有自己独有的创建字符串的方式。在OC中,字符串是一个类,每个创建的字符串都是类的对象。
创建和输出比较
char * p = "C str:hello world"; NSLog(@"%s", p); NSString * str1 = @"OC str1: hello world"; NSLog(@"%@", str1);
2.NSString对象的创建
//使用C的字符串来创建OC字符串对象 NSString *str3 = [[NSString alloc] initWithUTF8String:"oc str3: hello world"]; //使用格式符创建OC字符串 NSString *str4 = [[NSString alloc]initWithFormat:@"oc str4:hello worl%c,%d",'d',4]; //创建临时字符串 NSString * str5 = [NSString stringWithUTF8String:"hello world"]; NSString * str6 = [NSString stringWithFormat:@"hello %d %c",4,'A']; [str3 release]; [str4 release];使用init创建的字符串对象,需要手动调用release方法释放对象所占用的内存。而临时字符串会自动释放。
3.NSString的一些方法
NSString *str7 = @"hello"; NSString *str8 = @"hello"; //1.比较字符串是否相同,相同未yes/1,不同为no/0 BOOL ret = [str7 isEqualToString:str8]; NSLog(@"%d",ret); //2.比较字符串大小,结果为枚举类型,-1/0/1 NSComparisonResult ret2 =[str7 compare:str8]; if(ret2 == NSOrderedAscending){ NSLog(@"左边小"); }else if (ret2 == NSOrderedSame){ NSLog(@"相同"); }else if(ret2 == NSOrderedDescending){ NSLog(@"左边大"); } //3.查找子 字符串 NSString * s1 = @"I am a very good man"; NSString * s2 = @"very"; //在s1中查找s2,获得s2的位置和长度 NSRange range = [s1 rangeOfString:s2]; NSLog(@"location:%lu length:%lu", range.location,range.length); //4.截取已有字符串,生成新的字符串,原来的字符串不发生任何变化 NSString * s3 = @"0123456789"; NSString * s4 = [s3 substringToIndex:6];//[0,6) NSString * s5 = [s3 substringFromIndex:6];//[6,end],从0开始数 NSRange range2 = {3, 4};//结构体第一个参数为起始位置,第二个为长度 NSString * s6 = [s3 substringWithRange:range2];//传入一个range结构体对象 NSString * s7 = [s3 substringWithRange:NSMakeRange(3, 4)];//直接创建一个range NSLog(@"s1:%@",s1); NSLog(@"s2:%@",s2); NSLog(@"s3:%@",s3); NSLog(@"s4:%@",s4); NSLog(@"s5:%@",s5); NSLog(@"s6:%@",s6); NSLog(@"s7:%@",s7); /* 2015-09-17 07:36:30.935 数据结构-NSString[2573:73722] s1:I am a very good man 2015-09-17 07:36:30.935 数据结构-NSString[2573:73722] s2:very 2015-09-17 07:36:30.935 数据结构-NSString[2573:73722] s3:0123456789 2015-09-17 07:36:30.935 数据结构-NSString[2573:73722] s4:012345 2015-09-17 07:36:30.935 数据结构-NSString[2573:73722] s5:6789 2015-09-17 07:36:30.936 数据结构-NSString[2573:73722] s6:3456 2015-09-17 07:36:30.936 数据结构-NSString[2573:73722] s7:3456 */
三、NSMutableString的使用
NSMutableString类,可变字符串类的对象,内容可变,无外乎增删改查,对字符串内容进行修改。该类继承自NSString类,所以它除了能够使用NSString类的方法,还有一些自己独有的方法。
NSMutableString *s8 =@"hello";//这种做法是错误的 NSMutableString * s9 = [[NSMutableString alloc] initWithCapacity:10];//创建一个长度为10的可变字符串 NSMutableString * s10 = [[NSMutableString alloc] init];//创建一个空的可变字符串,然后给值 [s10 setString:@"hello"];//s10 =>"hello" [s10 setString:@"world"];//s10=>"world",原来的内容被替换了 NSLog(@"s10: %@", s10); //1.增,追加字符串 [s10 appendString:@" world"]; [s10 appendFormat:@"%c",'D']; NSLog(@"s10 :%@", s10);//world worldD //1.增,插入字符串 [s10 insertString:@"hello " atIndex:0]; NSLog(@"s10 :%@", s10);//hello world worldD //2.删,delete [s10 deleteCharactersInRange:NSMakeRange(3, 4)]; NSLog(@"s10 :%@",s10);//helorld worldD //3.改,replace [s10 replaceCharactersInRange:NSMakeRange(3, 2) withString:@"AB"]; NSLog(@"s10 :%@", s10);//helABld worldD
@诗未冷学习博客
0 0
- OC基础-OC三大基本数据结构-NSString
- OC基础-OC三大基本数据结构-NSArray
- OC基础-OC三大基本数据结构-NSDictionary
- OC基本数据结构-NSString
- OC基本数据类型-NSString
- OC基础之NSString
- OC NSString基础学习
- oc中NSString的基本使用---iOS基础篇
- OC基础-03-三大特性
- OC基础之-----字符串NSString
- OC基本数据结构-NSArray
- OC-NSString
- OC NSString .......
- OC NSString
- OC-NSString
- OC-NSString
- OC - NSString
- OC---三大特性
- abap修改已有的程序
- 黑马程序员_JAVA获取网页源代码
- [leetcode64]Minimum Path Sum
- Android Log等级的介绍
- android sqlite3命令查询及修改数据
- OC基础-OC三大基本数据结构-NSString
- Android单元测试
- 判断是否是闰年
- Socket网络编程(一)
- 深入浅出UML类图(三)
- Apache2 httpd.conf 配置详解
- jsp使用注释格式问题
- 新建JSP报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- HashMap多线程并发问题分析