将多个数组值组合成一个字符串值?
问题描述:
我想将数组值合并成一个字符串。 我的数组是像...将多个数组值组合成一个字符串值?
array1=[@"fizan",@"nike",@"pogo"];
array2=[@"round",@"rectangle",@"square"];
array3=[@"frame",@"frame",@"frame"];
我需要像这样...
value1 = fizan round frame
value2 = nike rectangle frame
value3 = pogo square frame
答
试试这个:
NSArray *array1= @[@"fizan",@"nike",@"pogo"];
NSArray *array2= @[@"round",@"rectangle",@"square"];
NSArray *array3= @[@"frame",@"frame",@"frame"];
NSMutableArray *array = [[NSMutableArray alloc] initWithArray:@[array1,array2,array3]];
NSMutableArray *output = [[NSMutableArray alloc] init];
NSString *a;
NSInteger count = array.count;
for (int i = 0; i<array1.count; i++) {
a = @"";
for (int j = 0; j<count; j++) {
a = [a isEqualToString: @""] ? [NSString stringWithFormat:@"%@",[[array objectAtIndex:j] objectAtIndex:i]] : [NSString stringWithFormat:@"%@ %@",a,[[array objectAtIndex:j] objectAtIndex:i]];
}
[output addObject:a];
}
for (int i = 0; i < output.count; i++) {
NSLog(@"value %i -> %@",i+1,output[i]);
}
希望这有助于!
UPDATE:
NSArray *array1= @[@"fizan",@"",@"pogo"];
NSArray *array2= @[@"round",@"rectangle",@"square"];
NSArray *array3= @[@"frame",@"frame",@"frame"];
NSMutableArray *array = [[NSMutableArray alloc] initWithArray:@[array1,array2,array3]];
NSMutableArray *output = [[NSMutableArray alloc] init];
NSString *a;
NSInteger count = array.count;
for (int i = 0; i<array1.count; i++) {
a = @"";
for (int j = 0; j<count; j++) {
a = [a isEqualToString: @""] ? [NSString stringWithFormat:@"%@",[[array objectAtIndex:j] objectAtIndex:i]] : [NSString stringWithFormat:@"%@ %@",a,[[array objectAtIndex:j] objectAtIndex:i]];
}
[output addObject:a];
}
for (int i = 0; i < output.count; i++) {
NSLog(@"value %i -> %@",i+1,output[i]);
}
我已经测试此代码。它工作完美。再次检查并重新考虑问题。
答
做这个
NSArray *array1 = @[@"fizan", @"nike", @"pogo"];
NSString *value = [array1 componentsJoinedByString:@" "];
NSLog(@"value = %@", value);
输出将得到像
value = fizan nike pogo
对于你的情况
NSArray *completeArray = @[@[@"fizan",@"nike",@"pogo"], @[@"round",@"rectangle",@"square"], @[@"frame",@"frame",@"frame"]];
NSMutableArray *resultArray = [NSMutableArray array];
unsigned long count = 1;
for (int i = 0; i< count; i++) {
NSMutableArray *listArray = [NSMutableArray array];
for (NSArray *itemArray in completeArray) {
count = MAX(count,itemArray.count);
if (i < itemArray.count) {
[listArray addObject:itemArray[i]];
}
}
[resultArray addObject:listArray];
}
for (NSArray *itemArray in resultArray) {
NSString *value = [itemArray componentsJoinedByString:@" "];
NSLog(@"value = %@", value);
}
输出
value = fizan round frame
value = nike rectangle frame
value = pogo square frame
+0
检查问题和输出中的输出 –
+0
@BhargavSoni嗨,现在我已经编辑了答案。 –
+0
,因为你已经编辑了答案,它不会做任何改变; –
感谢您的回答... :) – NilamPari
编码快乐:) –
,要是我有一个数组值的空白 这样 的NSArray *数组1 = @ @“fizan”,@“” @“弹簧”] ; NSArray * array2 = @ [@“round”,@“rectangle”,@“square”]; NSArray * array3 = @ [@“frame”,@“frame”,@“frame”]; 然后它给出错误,如 索引0超出空NSArray的界限 你能帮我解决这个问题吗? – NilamPari