2016-08-11 37 views
1

我有一個數組,即由以下字符串:串的獨立陣列由多個陣列

[NSString stringByAppendingFormat:@"<p style=\"padding-left:20px;margin-bottom:-10px;\"><i>%@%@%@%@</i></p>", 
         wrappingBy, pack1, pack2, strFirmName]; 

例如,有200個不同的字符串。第一個參數 - wrappingBy可能有幾個不同的名稱。例如 - 框,管,袋等

我想要的是,枚舉通過該數組,並根據該名稱創建不同的數組。所以,如果我的數組由50個字符串組成,從50個字符串開始,並從100個字符串開始我想要3個不同的數組。

有沒有簡單的方法來實現這一目標?

+2

更簡單的方法是將它們存儲到字典中,然後獲取個人密鑰並將它們存儲在separte數組中! –

+0

@TejaNandamuri我不知道我該怎麼做。每當我得到字符串我上面提出的是個別情況下,當我們通過SQL數據庫獲取此字符串。 –

+0

是否每個陣列都拿着名稱框/包/管或完整的字符串? –

回答

1

試試這個:

比方說,你有一個字符串數組:

NSArray *[email protected][@"box3523sfgsg",@"boxsdfsdf3",@"[email protected]$#",@"[email protected]@4bag",@"[email protected]#$FR",@"tubeASAD"]; 

在你的情況,上述陣列充滿以下字符串

[NSString stringByAppendingFormat:@"<p style=\"padding-left:20px;margin-bottom:-10px;\"><i>%@%@%@%@</i></p>", 
         wrappingBy, pack1, pack2, strFirmName]; 

現在添加wrappingBy每次將上面的字符串添加到數組時,都需要將參數添加到數組中,並確保不要將重複項添加到數組中。 YOu可以在將它們添加到數組之前檢查重複項。

,並在你的情況,你會怎麼做

 NSMutableArray *arrayNAme=[[NSMutableArray alloc]init]; 

     //make arrayName mutable 
     if (![arrayNAme containsObject: wrappingBy]) { 
      [arrayNAme addObject: wrappingBy]; 
     } 

你會得到arrayName中包含以下內容:

 [email protected][@"box",@"bag",@"tube"]; 

現在搜索主陣列字符串,如果它包含wrapingBy名稱與否,如果是,將它們添加到數組並將該數組添加到dicitonary中:

NSMutableDictionary *myDictionary=[[NSMutableDictionary alloc]init]; 
    for(NSString *nameString in arrayNAme) { 
     NSMutableArray *strnArray=[[NSMutableArray alloc]init]; 
     for (NSString *str in arr) 
     { 
      if([str containsString:nameString]) 
      { 
      [strnArray addObject:str]; 
      [myDictionary setValue:strnArray forKey:nameString]; 
      } 
     } 
    } 

最後,您有了di ctionary:

{ 
    bag =  (
     "[email protected]$#", 
     "[email protected]@4bag" 
    ); 
    box =  (
     box3523sfgsg, 
     boxsdfsdf3 
    ); 
    tube =  (
     "[email protected]#$FR", 
     tubeASAD 
    ); 
} 

現在您可以獲取每個鍵值並將它們存儲在單獨的數組中。

+0

得到了db,謝謝,這會爲我節省很多時間!尼斯解決方案 –

+0

你有嘗試嗎?它包括dublicates .. –

+0

哦,你是對的,讓我修改它! –