A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

2、 利用分类给NSString扩展3个方法(Objective-C)
1>    字符串反转(比如@”123”调用方法后返回@”321”)
2>    计算英文字母的个数(比如@”5435abc54abc3AHJ5”调用方法后返回的是9)
3>    去除字符串两端空格(比如@”  1235 45 ”调用方法后返回@”1235 45”)

这个题如果求解

评分

参与人数 1黑马币 +20 收起 理由
Bella_千寻 + 20 淡定

查看全部评分

9 个回复

倒序浏览
  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
复制代码
回复 使用道具 举报 2 0
好好看看,非常好的帖子
回复 使用道具 举报
谢谢啦,辛苦啦。感谢感谢!
回复 使用道具 举报
你这是试题吧,好好加油
回复 使用道具 举报
回复 使用道具 举报
不建议直接贴代码。
1. 反转用对应交换的思路实现。
2. 统计就是简单的遍历计数。
3. 两端空格可以用:反复调用删除头尾空格,直到不是空格为止。

最后,本题为类扩充方法,可以是类方法,也可以是对象方法。
为了高分,可以两种都写,并且在写明类方法&对象方法差别:
“类方法中以传入NSString对象名调用,对象方法中以self调用。”的前提下:
先写好一种方法,另一种直接调用写好的。
回复 使用道具 举报
学习了。。。
回复 使用道具 举报
都是大神
回复 使用道具 举报
周翔 中级黑马 2015-12-26 21:54:01
10#
6666666666666666666666 说的不错!还是要考自己的思维换一种新的方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马