【问题标题】:NSString to NSArray and editing every objectNSString 到 NSArray 并编辑每个对象
【发布时间】:2015-08-18 11:12:12
【问题描述】:

我有一个NSString,里面填满了用逗号分隔的对象

NSString *string = @"1,2,3,4";

我需要在编辑它们时将这些数字分开并存储到一个数组中,结果应该是

element 0 = 0:1,
element 1 = 1:2,
element 2 = 2:3,
element 3 = 3:4.

如何将这些添加到字符串中的对象中?

谢谢。

附注:编辑

我已经这样做了:

NSString *string = @"1,2,3,4";
NSArray *array = [string componentsSeparatedByString:@","];

[array objectAtIndex:0];//1
[array objectAtIndex:1];//2
[array objectAtIndex:2];//3
[array objectAtIndex:3];//4

我需要的结果是:

[array objectAtIndex:0];//0:1
[array objectAtIndex:1];//1:2
[array objectAtIndex:2];//2:3
[array objectAtIndex:3];//3:4

【问题讨论】:

  • 我不确定你想用这个做什么,但你能告诉我们你为得到想要的结果所做的努力吗?
  • 请查看编辑@FahimParkar
  • ok... 为什么你想要这样的结果?告诉我你到底想做什么......你也可以在简单的 for 循环中做到这一点......
  • 在for循环中你可以有NSLog(@"%d:%d", i, (i+1));
  • 检查我的答案..希望这是你想要的......

标签: objective-c nsstring nsarray


【解决方案1】:

代替内置的 map 函数(对于 Swift 来说是的),您必须遍历 array 并构造一个包含所需字符串的新数组:

NSString *string = @"1,2,3,4";
NSArray *array = [string componentsSeparatedByString:@","];

NSMutableArray *newArray = [NSMutableArray arrayWithCapacity:array.count];

[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [newArray addObject:[NSString stringWithFormat:@"%lu:%@", (unsigned long)idx, obj]];
}];

【讨论】:

    【解决方案2】:

    您需要做的第一件事是将字符串分成一个组成部分的数组 - NSString 有一个方便的方法:'-componentsSeparatedByString'。代码应该是这样的:

    NSArray *components = [string componentsSeparatedByString:@","];
    

    这样就可以在数组中为您提供 4 个 NSString 对象。然后,您可以遍历它们以在数组中创建复合对象,尽管您并不完全清楚您需要这些对象的方式或原因。也许是这样的:

    NSMutableArray *resultItems = [NSMutableArray array];
    for (NSString *item in components)
    {
        NSString *newItem = [NSString stringWithFormat:@"%@: ... create your new item", item];
        [resultItems addObject:newItem];
    }
    

    【讨论】:

      【解决方案3】:

      这个怎么样?

      NSString *string = @"1,2,3,4";
      NSArray *myOldarray = [string componentsSeparatedByString:@","];
      NSMutableArray *myNewArray = [[NSMutableArray alloc] init];
      
      for (int i=0;i<myOldarray.count;i++) {
          [myNewArray addObject:[NSString stringWithFormat:@"%@:%d", [myOldarray objectAtIndex:i], ([[myOldarray objectAtIndex:i] intValue]+1)]];
      }
      
      // now you have myNewArray what you want.
      

      这是考虑到你想要number:number+1的数组

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多