用几个数组分隔字符串数组

Separate array of strings by several arrays

我有一个数组,由以下字符串组成:

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

例如,它有 200 个不同的字符串。第一个参数 - wrappingBy,可能有几个不同的名称。例如 - 盒子、管子、袋子等

我想要的是,枚举该数组,并根据该名称创建不同的数组。所以,如果我的数组由 50 个字符串组成,从盒子开始,50 个字符串从管开始,100 个字符串从包开始,我想要 3 个不同的数组。

有什么简单的方法可以实现吗?

试试这个:

假设您有字符串数组:

NSArray *arr=@[@"box3523sfgsg",@"boxsdfsdf3",@"bag!@$#",@"!@@4bag",@"tube@#$FR",@"tubeASAD"];

在你的例子中,上面的数组填充了以下字符串

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

现在,每次将上述字符串添加到数组时,将 wrappingBy 参数添加到数组,并确保不向数组添加重复项。您可以在将重复项添加到数组之前检查重复项。

在你的情况下,你会做

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

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

您将获得包含以下内容的 arrayNAMe:

      arrayNAme=@[@"box",@"bag",@"tube"];

现在搜索主数组字符串是否包含 wrapingBy 名称,如果是,将它们添加到数组并将该数组添加到字典中:

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

最后你有字典:

    {
    bag =     (
        "bag!@$#",
        "!@@4bag"
    );
    box =     (
        box3523sfgsg,
        boxsdfsdf3
    );
    tube =     (
        "tube@#$FR",
        tubeASAD
    );
}

现在您可以获取每个键值并将它们存储在单独的数组中。