黑马程序员技术交流社区

标题: OC中有没有字符串和数组相互转化的方式 [打印本页]

作者: disgusting    时间: 2014-7-9 21:57
标题: OC中有没有字符串和数组相互转化的方式
OC中有没有字符串和数组 相互转化的方式?
作者: ⒈心只霸占沵    时间: 2014-7-9 22:09
  1. //当然有,不知道你说的是不是这个
  2. const char *cStr= "itheima";  //C字符串
  3. NSString *ocStr= @"itheima";//OC字符串  
  4. const  char *Cstring = [ocStr UTF8String]; //OC 字符串转换为c字符串
  5. NSString *ocString= [NSString stringWithUTF8String:cStr];// c字符串转换为oc字符串
复制代码

作者: disgusting    时间: 2014-7-9 22:16
⒈心只霸占沵 发表于 2014-7-9 22:09

不是,我说的是OC字符串转成OC数组  ,还有反过来
作者: ⒈心只霸占沵    时间: 2014-7-9 22:21
本帖最后由 ⒈心只霸占沵 于 2014-7-9 22:25 编辑
disgusting 发表于 2014-7-9 22:16
不是,我说的是OC字符串转成OC数组  ,还有反过来

//字符串转数组  这个意思吗?将oc字符串拆分成字符串数组
    NSString *str=@"one two three four";
     NSLog(@"str:%@",str);
     NSArray *array = [str componentsSeparatedByString" "];
//    NSLog(@"array:%@",array);    //输出整个数组中所有元素

作者: ⒈心只霸占沵    时间: 2014-7-9 22:24
⒈心只霸占沵 发表于 2014-7-9 22:21
你的意思是OC字符串转成OC字符数组吗?我没懂你的意思

//字符串转数组  这个意思吗?将oc字符串拆分成字符串数组
    NSString *str=@"one two three four";
    NSLog(@"str:%@",str);
    NSArray *array = [str componentsSeparatedByString:@" "];
//    NSLog(@"array:%@",array);    //输出整个数组中所有元素
作者: disgusting    时间: 2014-7-9 22:31
⒈心只霸占沵 发表于 2014-7-9 22:24
//字符串转数组  这个意思吗?将oc字符串拆分成字符串数组
    NSString *str=@"one two three four";
   ...

嗯, 但是如果是一个没有空格的字符串呢?比如给@"abce"  还要先想办法给每一个加上空格么?
作者: ⒈心只霸占沵    时间: 2014-7-9 22:46
disgusting 发表于 2014-7-9 22:31
嗯, 但是如果是一个没有空格的字符串呢?比如给@"abce"  还要先想办法给每一个加上空格么? ...

这个方法只能这样,如果你要是直接转的话,你可以自己写个方法嘛!
作者: disgusting    时间: 2014-7-9 22:47
⒈心只霸占沵 发表于 2014-7-9 22:46
这个方法只能这样,如果你要是直接转的话,你可以自己写个方法嘛!

你帮我看下这道作业题 , 实现函数NSString * stringWithoutNum(NSString *str);
删除字符串str的所有数字
作者: ⒈心只霸占沵    时间: 2014-7-9 23:10
本帖最后由 ⒈心只霸占沵 于 2014-7-9 23:12 编辑
disgusting 发表于 2014-7-9 22:47
你帮我看下这道作业题 , 实现函数NSString * stringWithoutNum(NSString *str);
删除字符串str的所有数 ...

//黑苹果没办法上网,久等了
  1. +(NSString *)stringWithNum:(NSString *)str
  2. {
  3.     NSMutableString *MutableStr=[[NSMutableString alloc] init];
  4.     for (int i=0; i<str.length; i++) {
  5.         NSString* tempStr=[str substringWithRange:NSMakeRange(i, 1)];
  6.         if(!([tempStr isLessThanOrEqualTo:@"9"]&&[tempStr isGreaterThanOrEqualTo:@"0"]))
  7.         {
  8.             [MutableStr appendString:tempStr];
  9.         }
  10.     }
  11.     return MutableStr;
  12. }
复制代码

作者: disgusting    时间: 2014-7-9 23:24
⒈心只霸占沵 发表于 2014-7-9 23:10
//黑苹果没办法上网,久等了

好的   说声谢谢。
作者: 为梦想挺身而出    时间: 2014-7-9 23:28
disgusting 发表于 2014-7-9 23:24
好的   说声谢谢。

  1. #import <stdio.h>

  2. NSString * stringWithoutNum(NSString *str)
  3. {
  4.     NSMutableString *s = [NSMutableString string];
  5.     for (int i = 0; i<str.length; i++) {
  6.         char c = [str characterAtIndex:i];
  7.         
  8.         
  9.         if (c<'0' || c>'9')
  10.         {
  11.             [s appendFormat:@"%c", c];
  12.         }
  13.     }
  14.    
  15.     return s;
  16. }


  17. int main()
  18. {
  19.     @autoreleasepool {
  20.         
  21.    
  22.     NSString *str = @"sdsa1[]agjoiew41faf132";
  23.    
  24.    
  25.     NSString *newStr = stringWithoutNum(str);
  26.    
  27.     NSLog(@"%@", newStr);
  28.     }
  29. }
复制代码

作者: 邱蚓    时间: 2014-7-10 00:54
不太懂啊
作者: ★Joean_Zhou    时间: 2014-7-10 22:42
disgusting 发表于 2014-7-9 22:47
你帮我看下这道作业题 , 实现函数NSString * stringWithoutNum(NSString *str);
删除字符串str的所有数 ...

创建一个新的MutableString,然后循环遍历用characterAtIndex一个一个的取出字符,如果遇到数字不做处理,只要不是数字就用appendstring把取出后不是数字的字符拼接到你创建的新的字符串然后输出




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