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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

OC中有没有字符串和数组 相互转化的方式?

12 个回复

倒序浏览
  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字符串
复制代码
回复 使用道具 举报

不是,我说的是OC字符串转成OC数组  ,还有反过来
回复 使用道具 举报
本帖最后由 ⒈心只霸占沵 于 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:21
你的意思是OC字符串转成OC字符数组吗?我没懂你的意思

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

嗯, 但是如果是一个没有空格的字符串呢?比如给@"abce"  还要先想办法给每一个加上空格么?
回复 使用道具 举报
disgusting 发表于 2014-7-9 22:31
嗯, 但是如果是一个没有空格的字符串呢?比如给@"abce"  还要先想办法给每一个加上空格么? ...

这个方法只能这样,如果你要是直接转的话,你可以自己写个方法嘛!
回复 使用道具 举报
⒈心只霸占沵 发表于 2014-7-9 22:46
这个方法只能这样,如果你要是直接转的话,你可以自己写个方法嘛!

你帮我看下这道作业题 , 实现函数NSString * stringWithoutNum(NSString *str);
删除字符串str的所有数字
回复 使用道具 举报
本帖最后由 ⒈心只霸占沵 于 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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

回复 使用道具 举报
⒈心只霸占沵 发表于 2014-7-9 23:10
//黑苹果没办法上网,久等了

好的   说声谢谢。
回复 使用道具 举报
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. }
复制代码
回复 使用道具 举报
不太懂啊
回复 使用道具 举报
disgusting 发表于 2014-7-9 22:47
你帮我看下这道作业题 , 实现函数NSString * stringWithoutNum(NSString *str);
删除字符串str的所有数 ...

创建一个新的MutableString,然后循环遍历用characterAtIndex一个一个的取出字符,如果遇到数字不做处理,只要不是数字就用appendstring把取出后不是数字的字符拼接到你创建的新的字符串然后输出
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马