2016-06-15 205 views
0

我想将数组值合并成一个字符串。 我的数组是像...将多个数组值组合成一个字符串值?

array1=[@"fizan",@"nike",@"pogo"]; 
array2=[@"round",@"rectangle",@"square"]; 
array3=[@"frame",@"frame",@"frame"]; 

我需要像这样...

value1 = fizan round frame 
value2 = nike rectangle frame 
value3 = pogo square frame 

回答

1

试试这个:

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]); 
} 

我已经测试此代码。它工作完美。再次检查并重新考虑问题。

+0

感谢您的回答... :) – NilamPari

+0

编码快乐:) –

+0

,要是我有一个数组值的空白 这样 的NSArray *数组1 = @ @“fizan”,@“” @“弹簧”] ; NSArray * array2 = @ [@“round”,@“rectangle”,@“square”]; NSArray * array3 = @ [@“frame”,@“frame”,@“frame”]; 然后它给出错误,如 索引0超出空NSArray的界限 你能帮我解决这个问题吗? – NilamPari

1

做这个

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

,因为你已经编辑了答案,它不会做任何改变; –

相关问题