[英]How to join an NSArray output to an NSString separated with commas
我正在使用以下代码尝试将数组输出连接到NSString。
NSArray *array1 = [NSArray arrayWithObjects:[item objectForKey:@"id"], nil];
NSString *joinedString = [array1 componentsJoinedByString:@","];
NSLog(@"joinedString is %@", joinedString);
我希望这个输出连接的字符串为:join string是55,56,57,66,88 ......等...输出的时刻是:
2013-03-05 13:13:17.052 [63705:907] joinedString is 55
2013-03-05 13:13:17.056 [63705:907] joinedString is 56
2013-03-05 13:13:17.060 [63705:907] joinedString is 57
2013-03-05 13:13:17.064 [63705:907] joinedString is 66
您可能正在循环中运行join方法。
我想这就是你想要的。
NSMutableArray * array1 = [NSMutableArray array]; // create a Mutable array
for(id item in items){
[array1 addObject:[item objectForKey:@"id"]]; // Add the values to this created mutable array
}
NSString *joinedString = [array1 componentsJoinedByString:@","];
NSLog(@"joinedString is %@", joinedString);
你可以这样做,
举个例子
NSArray *array=@[@"A",@"B",@"C"];
NSString *string=[array componentsJoinedByString:@","];
NSLog(@"%@",string);
输出是:
A,B,C
什么你写的正确可能是[item objectForKey:@"id"]
一旦检查这一个[item objectForKey:@"id"]
关系。
NSMutableArray *array = [[NSMutableArray alloc]
initWithObjects:@"55",@"56",@"57",@"58", nil];
NSString *joinedString = [array componentsJoinedByString:@","];
NSLog(@"%@",joinedString);
我一直在评论这里的几个答案,并发现大多数答案只是提供代码作为解决此代码的答案,其原因是因为提供的代码(参见提供的代码)完全正常。
(由提问者提供)
NSArray *array1 = [NSArray arrayWithObjects:[item objectForKey:@"id"], nil];
NSString *joinedString = [array1 componentsJoinedByString:@","];
NSLog(@"joinedString is %@", joinedString);
由于用户没有提供如何创建item
NSDictionary
我假设已经创建了一个包含一些NSDictionaries
的NSArray
NSArray *array = [[NSArray alloc] initWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"55", @"id", nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"65", @"id", nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"75", @"id", nil],
[NSDictionary dictionaryWithObjectsAndKeys:@"65", @"id", nil],
nil];
问题是尚未提供的代码,因为我们知道, item
是一个NSDictionary
我们知道, [item objectForKey:@"id"]
不会返回它返回一个个人项目NSArray
的ID。 所以基于它是否是一个NSArray
它会记录像joinedString is (55, 56, 57...)"
这样的东西joinedString is (55, 56, 57...)"
。我们也知道它不能只是一个字符串,因为我们也只有一个值而不是它会记录一些像这样的东西, joinedString is 55,
再次这不是想要的东西。获得所提供的东西的唯一方法就是拥有这样的东西
for(NSDictionary *item in array) {
NSArray *array1 = [NSArray arrayWithObjects:[item objectForKey:@"id"], nil];
NSString *joinedString = [array1 componentsJoinedByString:@","];
NSLog(@"joinedString is %@", joinedString);
}
因此,如果是这种情况,那么解决这个问题的方法就是这样做
NSMutableArray *array1 = [NSMutableArray array];
for(NSDictionary *item in array) {
[array1 addObject:[item objectForKey:@"id"]];
}
// Note that this doesn't need to be in a for loop `componentsJoinedByString:` only needs to run once.
NSString *joinedString = [array1 componentsJoinedByString:@","];
NSLog(@"joinedString is %@", joinedString);
这个的输出是(按照用户的意愿)
joinedString is 55,65,75,65
一旦提问者提供了丢失的代码,我将根据代码纠正他的答案,但在此之前我假设。
编辑:
首先检查[item objectForKey:@"id"]
它是否合适?
然后使用以下代码:
NSArray *array1 = [NSArray arrayWithObjects:[item objectForKey:@"id"], nil];
NSString *commaSpStr;
commaSpStr = [array1 componentsJoinedByString:@", "];
NSLog(@"%@", commaSpStr);
您每次都在重新创建 array1
。 创建array1
的实例变量, [item objectForKey:@"id"]
插入[item objectForKey:@"id"]
值,您将看到joinedString
将被更新。
NSMutableArray *arr = [[NSMutableArray alloc] init];
for (NSDictionary *item in array) {
[arr addObject:[item objectForKey:@"id"]];
}
NSString *joinedStr = [arr componentsJoinedByString:@","];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.