黑马程序员技术交流社区

标题: Foundation课后有一题不会写,求大神给思路 [打印本页]

作者: arui12580    时间: 2014-12-5 15:06
标题: Foundation课后有一题不会写,求大神给思路
实现函数NSString  *stringWithoutNum(NSString *str);
删除字符串str所有数字。


作者: arui12580    时间: 2014-12-5 15:15
这是我的思路,我想问下那个if括号里条件该怎么写

IMG_20141205_151257.jpg (25.51 KB, 下载次数: 10)

IMG_20141205_151257.jpg

作者: 从今以后    时间: 2014-12-5 16:03
  1. #import <foundation/foundation.h>

  2. int main() {

  3.     NSString *string = @"3k1f0a63712h9s45fo78";
  4.    
  5.     // 方法1
  6.     // 用@""空字符替换@"[0-9]"(正则表达式 表示0-9数字) options:参数是使用正则表达式 range:参数是整个字符串范围
  7.     NSString *newString = [string stringByReplacingOccurrencesOfString:@"[0-9]" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, string.length)];
  8.     NSLog(@"%@", newString); // 输出:kfahsfo
  9.    
  10.     // 方法2
  11.     // 用@"0123456789"字符串里的字符创建一个字符集
  12.     NSCharacterSet *numberSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
  13.     // 用字符集里的字符分割字符串为一个个子串 返回一个存着子串的数组
  14.     NSArray *array = [string componentsSeparatedByCharactersInSet:numberSet];
  15.     // NSLog(@"%@", array); ("",k,f,a,"","","","",h,s,"",fo,"","") 数组里装着这些东西
  16.     // 把数组元素用@""空字符连接成字符串
  17.     NSString *str = [array componentsJoinedByString:@""];
  18.     NSLog(@"%@", str); // 输出:kfahsfo
  19.    
  20.     // 方法3
  21.     NSMutableString *newStr = [NSMutableString string];
  22.     for (int i = 0; i < string.length; i++) {
  23.         unichar c = [string characterAtIndex:i];
  24.         if ( !(c >= '0' && c <= '9') ) {
  25.             [newStr appendFormat:@"%c", c];
  26.         }
  27.     }
  28.     NSLog(@"%@", newStr); // 输出:kfahsfo
  29.    
  30.     return 0;
  31. }
复制代码

作者: 邵起    时间: 2014-12-6 09:19
从今以后 发表于 2014-12-5 16:03

楼上好专业,我用的方法比你麻烦多了,不过这些视频都没讲呀,你是在哪里学的??
作者: zwcshy    时间: 2014-12-6 09:31
二楼,用的方法都挺好的,自学的比较深入
作者: 从今以后    时间: 2014-12-6 11:49
邵起 发表于 2014-12-6 09:19
楼上好专业,我用的方法比你麻烦多了,不过这些视频都没讲呀,你是在哪里学的?? ...

百度看到个类似的 发现有这么个方法 就研究了下 不要局限于视频 那么多方法他不可能一一讲到 碰巧遇到新的就自己搞一搞^_^
作者: zhao190109    时间: 2014-12-6 13:07
还是要多练习,加油
作者: 邵起    时间: 2014-12-7 09:25
从今以后 发表于 2014-12-6 11:49
百度看到个类似的 发现有这么个方法 就研究了下 不要局限于视频 那么多方法他不可能一一讲到 碰巧遇到新 ...

有道理,看来得多求助度娘啊~
作者: 邵起    时间: 2014-12-7 09:26
从今以后 发表于 2014-12-6 11:49
百度看到个类似的 发现有这么个方法 就研究了下 不要局限于视频 那么多方法他不可能一一讲到 碰巧遇到新 ...

有道理,看来得多求助度娘啊~
作者: smile辉煌    时间: 2014-12-7 10:37
好多解法,学习了
作者: 米匠    时间: 2014-12-7 20:25
先把NSString转成NSMutableString,遍历字符串,当字符在数

字的ASC码区间时,deleteCharactersInRange,然后Range的

loc=i,size=1,最后再把NSMutableString转成NSString返回




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