黑马程序员技术交流社区

标题: 求各位大神指导, 利用分类给NSString扩展3个方法(Objective-C) [打印本页]

作者: 天凉好个秋。。    时间: 2015-4-21 09:20
标题: 求各位大神指导, 利用分类给NSString扩展3个方法(Objective-C)
2、 利用分类给NSString扩展3个方法(Objective-C)
1>    字符串反转(比如@”123”调用方法后返回@”321”)
2>    计算英文字母的个数(比如@”5435abc54abc3AHJ5”调用方法后返回的是9)
3>    去除字符串两端空格(比如@”  1235 45 ”调用方法后返回@”1235 45”)

这个题如果求解
作者: wslinke    时间: 2015-4-21 17:13
  1. #import "NSString+new.h"

  2. @implementation NSString (new)
  3. //字符串反转
  4. - (NSString *)reverse
  5. {
  6.     NSMutableArray *array = [NSMutableArray array];
  7.     for (NSUInteger i = self.length ; i > 0; i--) {
  8.         [array addObject:[NSString stringWithFormat:@"%c",[self characterAtIndex:i-1]]];
  9.     }
  10.     return [array componentsJoinedByString:@""];
  11. }
  12. //计算英文字母个数
  13. - (int)countAlpha
  14. {
  15.     int count = 0;
  16.     for (NSUInteger i = 0; i < self.length; i++) {
  17.         if(isalpha([self characterAtIndex:i]))
  18.             count++;
  19.     }
  20.     return count;
  21. }
  22. //去除字符串两端空格
  23. - (NSString *)removeSpace
  24. {
  25.     NSMutableString *temp = [NSMutableString stringWithString:self];
  26.     while (isblank([temp characterAtIndex:0])) {
  27.         [temp deleteCharactersInRange:NSMakeRange(0, 1)];
  28.     }
  29.     while (isblank([temp characterAtIndex:temp.length-1])) {
  30.         [temp deleteCharactersInRange:NSMakeRange(temp.length-1, 1)];
  31.     }
  32.    
  33.     return [NSString stringWithString:temp];
  34. }
  35. @end
复制代码

作者: itheima_llt    时间: 2015-4-21 18:31
好好看看,非常好的帖子
作者: itheima_llt    时间: 2015-4-21 21:55
谢谢啦,辛苦啦。感谢感谢!
作者: 鹰击长空168    时间: 2015-4-22 22:41
你这是试题吧,好好加油
作者: 天凉好个秋。。    时间: 2015-4-25 02:33
wslinke 发表于 2015-4-21 17:13

康撒米达:)
作者: 仰望的繁华    时间: 2015-4-25 09:10
不建议直接贴代码。
1. 反转用对应交换的思路实现。
2. 统计就是简单的遍历计数。
3. 两端空格可以用:反复调用删除头尾空格,直到不是空格为止。

最后,本题为类扩充方法,可以是类方法,也可以是对象方法。
为了高分,可以两种都写,并且在写明类方法&对象方法差别:
“类方法中以传入NSString对象名调用,对象方法中以self调用。”的前提下:
先写好一种方法,另一种直接调用写好的。

作者: richardchan    时间: 2015-4-25 10:01
学习了。。。
作者: 周翔    时间: 2015-12-26 21:54
6666666666666666666666 说的不错!还是要考自己的思维换一种新的方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2