用几个数组分隔字符串数组
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
);
}
现在您可以获取每个键值并将它们存储在单独的数组中。
我有一个数组,由以下字符串组成:
[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
);
}
现在您可以获取每个键值并将它们存储在单独的数组中。