NSString到NSArray并编辑每个对象

时间:2015-08-18 11:12:12

标签: objective-c nsstring nsarray

我有一个NSString填充了逗号分隔的对象

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

我需要将这些数字分开并在编辑时存储到数组中,结果应为

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

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

感谢。

P.S:编辑

我已经这样做了:

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

3 个答案:

答案 0 :(得分: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]];
}];

答案 1 :(得分:1)

您需要做的第一件事是将字符串分成一个组件部分数组 - 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];
}

答案 2 :(得分:1)

这个怎么样?

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