OC中的字符串,数组,字典,集合常用方法

最近学习了OC,觉得里面的方法就和C语言里面的函数差不多,下面是本人最近做的一些方法总结,初学写的不好,勿喷。有好的文章可以留言,本人急需发展,就像乔布斯说的那句话:求知若饥,虚心若愚。

/*一.  字符串

OC中字符串的格式:NSString *string =@"字符";

1. 创建一个字符创常量

(1).直接赋值

(2).通过初始化,便利构造

2. 快速创建一个字符串

(1).通过带参数的init方法快速创建

(2).通过带参数的便利构造方法快速创建

3. 创建一个格式化的字符串

(1).通过带参数的便利构造方法创建格式化字符串

(2).后面的格式,跟输出(NSLog)括号内的一样

4. 字符串的比较

(1).区分大小写的比较:compare

(2).不区分大小写的比较:caseInsensitiveCompare

(3).isEqualToString比较字符串对象的内容是否一样;==比较两个字符对象的内存地址是否一样,用BOOL 接受

5. 字符串的转换

(1).将字母转化为大写:uppercaseString

(2).将字母转化成小写:lowercaseString

(3).将首字母大写,后面小写:capitalizedString

6. 字符串的截取与拼接

(1).表示从头截取到哪里:substringToIndex

(2).表示从哪里开始到尾:substringFromIndex

(3).表示按指定的范围截取:substringWithRange

NSrange规定一个返回,locationd代表开从哪里开始截取,length代表要截取多长

(4).格式化拼接字符串:stringByAppendingFormt

7.字符串转换数组

(1).用特定字符分割字符串:componentsSeparatedByString

NSMutableString方法

8. 增->使原字符改变

(1).对自身进行修改:appendString

(2).对自身进行格式化拼接:appendFormat

(3).在字符串的指定位置插入内容:insertString...atIndex

9. 删->删除原字符串的某些内容

(1).删除原字符串中指定区域的字符:deleteCharactersInRange   range指代删除内容范围

10.改->修改原字符的某些内容

(1).修改字符的内容:replaceCharactersInRange...withString

range指代修改内容范围,withString后面加修改后的内容

11.查->查找原字符串的字符

(1).查找原字符串中是否有指定的字符:containsString   BOOL类型 接收

*/

/*

二.数组

OC中数组的格式:NSSArray *array = @[@"元素1",@"元素2",@"元素3"];

OC中能将另一个数组的值赋给新数组

1. 数组对象的创建

(1).创建数组时给数组添加一个元素:arrayWithObject

(2).创建数组时给数组添加多个元素:arrayWithObjects

采用该方式最后用 nil结尾

(3).创建数组时添加整个数组:arrayWithArray

2. 获取数组中的元素个数以及访问数组元素

(1).通过下标来存取值:array[];

(2).通过count获取到数组中元素的个数:array count

3. 追加数组中的内容

(1).往数组里面追加一个元素:arrayByAddingObject

(2).往数组里面追加一个数组:arrayByAddingObjectsFromArray

4. 数组转字符串

(1).数组转换字符串的方法:componentsJoinedByString

用符号隔开元素

5. 判断数组中是否存在一个指定的对象

(1).判断数组中是否存在一个指定的对象:containsObject

结果用 BOOL 接受

6. 根据指定的对象返回索引下标、返回数组中最后一个元素

(1).根据索引下标,找到第一个最后一个元素:first/lastObject

7. //for...in 快速遍历数组:

for(NSString *str1 in array){

}

in左边:放一个数组内容的引用,没有实例化的对象就叫做引用

in右边:放要遍历的数组

核心:从头遍历指定数组,将每次遍历到的数值给in左边的对象

当数组里面的元素被遍历完成以后,for循环自动结束

NSMutableArray

7. 新增

(1).往数组里面添加一个元素:addObject

(2).往数组里面批量添加元素:addObjectFromArray

8. 插入

(1).往数组里插入一个元素:insertObject...atIndex

atIndex指的是从哪插入

9. 删除

(1).删除最后一个元素:removeLastObject

(2).删除指定位置元素:removeObjectAtIndex

后面加指定的位置

(3).删除所有的元素:removeAllObjects

(4).批量删除:removeObjectsInArray

10. 替换元素

(1).用指定元素替换数组中指定位置:replaceObjectAtIndex:withObject

后加指定元素位置,       后加指定元素

(2).用指定数组替换数组中指定区域元素

replaceObjectInRange:位置

withObjectsFromArray:nil

三.字典

OC中字典的格式:NSDictionary *dict = @{key:value,key:value...};

1.字典对象的创建

(1).通过直接赋值的方法:NSDictionary *dict =@{key:vaule,key:value};

(2).通过alloc init方法: NSDictionary *dict =[[NSDictionary alloc]init];

(3).便利构造方法:NSDictionary *dict =[NSDictionary dictionary];

2.快速创建一个字典的方法

(1).初始化过程中NSDictionary initWithObjectsAndKeys:无论键还是值都用逗号隔开,键在前,值在后,给的参数必须是双数

(2).便利构造过程中NSDicationary dictionaryWithObjectsAndKeys:无论键还是值都用逗号隔开,键在前,值在后,给的参数必须是双数

(3).将一个字典放到一个字典中:NSDictionary *dict1 =[NSDictionary alloc]initWithDictionary:dict(准备好的字典)];

(4).通过读取存放字典数据的文件创建字典:[[NSDictionary dict =[NSDictionary alloc]intWithContentsOfFile:nil(文件)];

(5).通过将url中存放的字典创建到新的字典中:[[NSDictionary alloc]initWithContentOfURL:nil(uil资源)];

3.获取字典中的键值

(1).通过字典里面相对的键:dict[@"key"];[dict objectForKey:@"key"];

(2).通过count获取到字典中键值对的个数: long num =[dict count];

(3).通过allkey获取到字典里面所有的键:NSArray *allkeysArray = [dict allkeys];

(4).通过allvalue获取到字典里面所有的值:NSArray *allvaluesArray = [dict allvalues];

(5).通过遍历字典中的键,来遍历字典中的值:for(NSString *key in allkeysArray){

NSLog(@"%@",dict[key]);

}

(6).通过枚举器访问获取到字典中的键和值:

通过keyEnumerator(枚举器)获取到字典中所有的键,将所有的键放入一个容器中:NSEnumerator *result = [dict keyEnumerator];

通过for...in循环遍历这个容器:for(NSString *key in result){

NSlog(@"%@",key);

};

通过nextObject方法获取容器中的结果,当nextObject结果返回为空时跳出循环:NSString = temp;

while(temp = [result naetObject]){

NSLog(@"%@",temp);

}

NSMutableDictionary 方法

1.给可变字典的赋值方式

(1).简单方式:通过直接赋值,dict[@"key"] =@"value";

(2).复杂方式:通过遍历构造,[dict setValue:@"value" forKey:@"key"];

(3).重新给字典赋值:[dict setDictionary:@{@"key":@" value"}];

2.创建字典

(1).创建指定个数元素的字典,如果赋值超过的时候系统会直接扩充

(2).alloc init和便利构造

3.移除字典元素

(1).通过Key来移除指定元素:[dict removeObjectForKey:@"key

"];

(2).批量移除:[dict removeObjectsForKeys: @[@"key1",@"key2"]];

(3).全部移除:[dict removeAllObjects];

四.集合

OC中集合的格式:NSSet *set =[NSSet alloc]initWithObjects:@1,@2,@3,nil];

1.集合对象的创建(快速创建)

(1).创建对象并直接赋值:NSSet *set =[NSSet alloc]initWithObjects:@1,@2,@3,nil];

(2).通过alloc init方法:NSSet *set = [[NSSet alloc]init];

(3).通过便利构造方法: NSSet *set = [NSSet set];

2.将数组转化为集合:

(1).将数组转化为集合:NSSet *set = [NSSet setWithArray:array];

(2).将一个元素放到新的集合:NSset *set = [NSSet setWithObject:@新元素];

3.遍历集合元素

(1). 通过for...in遍历集合:

for(NSString *temp in set){

}

(2).枚举器遍历集合:

NSEnumerator *result = [set objectEnumerator];

id temp;

while(temp = [result nextject]){

};

4.判断两个集合是否有交集

(1).判断是否有交集:BOOL isJiaoJi = [set1 isSubsetsOFSet set2];

(2).判断前者是否是后者的子集

BOOL isSub = [set isSubsetOfSet:set1];

NSMutableSet  方法

1.创建指定元素个数的一个集合对象

(1). NSMutableSet *set = [NSMutableSet setWithCapacity:1];

(2).给集合添加单个元素:

[set addObject:@"元素"];

(3).给集合批量添加元素:

[set addObjectsFromArray:array];

2.移除集合中的元素

(1).移除集合中的一个元素:

[set removeObject:@"元素"];

(2).移除集合中的所有元素:

[set removeAllObjects];

3.判断两个集合有没有交集并集

(1).获取到两个集合的并集最后赋值给set:

[set unionSet:set1];

(2).获取到两个集合的交集最后赋值给set:

[set intersectSet:set1];

(3).从一个集合中减去另一个集合,就是从集合中移除这两个集合的交集,最终赋值给set

[set minusSet:set1];

4. 给集合重新赋值

[set setSet:set1];

*/




补充:

mark 数组排序

NSArray *sortArray = @[@"b",@"c",@"d",@"z",@"r"];

// 设置比较方法

NSArray *resultArray = [sortArray sortedArrayUsingSelector:@selector(compare:)];

// 能设置升序还是降序

NSString *resultArray1 = [sortArray sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {

return [obj2 compare:obj1];

}];

最后,祝愿学习编程的都能早日找到对象,好吧,貌似我们学习oc天天都在见对象呢对吧?有对象的呢,就早日可以幸福的在一起。。。。。。还有就是对我的那个她说,你的支持和信赖是我一直学习,坚持下去的动力。




欢迎各种点赞,打赏。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容