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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huh 中级黑马   /  2016-1-2 18:08  /  690 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. MethodCustom.h
  3. */
  4. #import <Foundation/Foundation.h>

  5. @interface MethodCustom : NSObject

  6. @end
  7. /*
  8. MethodCustom.m
  9. */
  10. #import "MethodCustom.h"

  11. @implementation MethodCustom

  12. @end
  13. /*
  14. MethodCustom+Invert.h
  15. */
  16. #import "MethodCustom.h"

  17. @interface MethodCustom (Invert)
  18. //字符串反转(比如@”123”调用方法后返回@”321”)
  19. -(NSString*)invertString:(NSString *)str;
  20. //计算英文字母的个数(比如@”5435abc54abc3AHJ5”调用方法后返回的是9)
  21. -(int)returnNum:(NSString*)str;
  22. //去除字符串两端空格(比如@”  1235 45 ”调用方法后返回@”1235 45”)
  23. -(NSString*)delSpace:(NSString*)str;
  24. @end
  25. /*
  26. MethodCustom+Invert.m
  27. */
  28. #import "MethodCustom+Invert.h"

  29. @implementation MethodCustom (Invert)
  30. /*
  31. 字符串反转的方法
  32. 分析:
  33.     1)获得字符串的长度
  34.     2)循环求出每个字符,从最后面的字符开始!
  35.     3)将求出的字符,放入字符串里面,返回!
  36. str -- 传入的字符串
  37. */
  38. -(NSString*) invertString:(NSString *)str{
  39.     //定义字符串的长度
  40.     //sizeof(str);是字节的大小,不是长度!
  41.     int len=(int)str.length;
  42.     char c;
  43.     //定义可变字符串
  44.     //NSMutableString *str2=[NSMutableString string];
  45.     NSMutableString *str2=[NSMutableString stringWithFormat:@""];
  46.     for (int i =0; i<=len; i++) {
  47.         c = [str characterAtIndex:len-(i+1)];//取出单个字符
  48.         [str2 appendFormat:@"%c",c];//字符串尾部添加字符
  49.     }
  50.    
  51.     return str2;

  52. }
  53. /*
  54. 计算英文字母的个数(比如@”5435abc54abc3AHJ5”调用方法后返回的是9)
  55. 分析:
  56.     1)通过ASCII,A-Z(65-90),a-z(97-122)来判断是否为字母,或者直接判断,c>='a'...
  57.     2)通过characterAtIndex方法来取出单个字符
  58.     3)通过length来确定字符串长度
  59. */
  60. -(int)returnNum:(NSString*)str{
  61.     int count = 0;//字符个数
  62.     int len =(int)str.length;
  63.     unichar c ;
  64.    
  65.     for (int i=0; i<len; i++) {
  66.         c = [str characterAtIndex:i];
  67.         //if ((c>=65&&c<=90)||(c>=97&&c<=122)){
  68.         if ((c>='a'&&c<='z')||(c>='A'&&c<='Z')){
  69.             count++;
  70.         }
  71.     }
  72.     return count;
  73. }
  74. /*
  75. 去除字符串两端空格(比如@”  1235 45 ”调用方法后返回@”1235 45”)
  76.     分析:
  77.         1)将传进来的字符串,变为可变字符[[NSMutableString alloc] initWithString:str]
  78.         2)判断第一个字符是否为空,为空这删除,变成新的可变字符!再次判断此字符串第一个字符是否为空!
  79.         3)得到可变字符串的最后的字符(length-1),判断是否为空
  80. */
  81. -(NSString*)delSpace:(NSString*)str{
  82.    
  83.     NSMutableString *str1 = [[NSMutableString alloc] initWithString:str];
  84.     //去除前面空格
  85.     while ([str1 characterAtIndex:0] == ' ')
  86.     {
  87.         [str1 deleteCharactersInRange:NSMakeRange(0, 1)];
  88.         NSLog(@"%@\n",str1);
  89.     }
  90.     //去除后面空格
  91.     while ([str1 characterAtIndex:([str1 length] - 1)] == ' ')
  92.     {
  93.         [str1 deleteCharactersInRange:NSMakeRange(([str1 length] - 1), 1)];
  94.     }
  95.     return str1;
  96. }
  97. @end
  98. /*
  99. main.m
  100. 利用分类给NSString扩展3个方法(Objective-C)
  101. 1> 字符串反转(比如@”123”调用方法后返回@”321”)
  102. 2> 计算英文字母的个数(比如@”5435abc54abc3AHJ5”调用方法后返回的是9)
  103. 3> 去除字符串两端空格(比如@”  1235 45 ”调用方法后返回@”1235 45”)
  104. */
  105. #import <Foundation/Foundation.h>
  106. #import "MethodCustom.h"
  107. #import "MethodCustom+Invert.h"
  108. int main(int argc, const char * argv[]) {
  109.     MethodCustom *mt = [[MethodCustom alloc]init];
  110.     NSLog(@"反转后结果为:%@\n",[mt invertString:@"adsffd"]);
  111.     NSLog(@"英文字母的个数为:%d",[mt returnNum:@"5435abc54abc3AHJ5"]);
  112.     NSLog(@"字母:%@\n",[mt delSpace:@"  1235 45   "]);
  113.     return 0;
  114. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马