我有一个数组,由以下字符串组成:
cocos2d::Device::setKeepScreenOn(true);
例如,它有200个不同的字符串。第一个参数--wackingBy,可能有几个不同的名称。例如 - 盒子,管子,袋子等
我想要的是,枚举该数组,并根据该名称创建不同的数组。所以,如果我的数组包含50个字符串从框开始,50个字符串从tube开始,100个字符串从bag开始我想要3个不同的数组。
有没有简单的方法来实现这一目标?
答案 0 :(得分:1)
试试这个:
假设你有字符串数组:
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
param添加到数组中,并确保不要将重复项添加到数组中。你可以在将它们添加到数组之前检查重复项。
在你的情况下,你会做
NSMutableArray *arrayNAme=[[NSMutableArray alloc]init];
//make arrayName mutable
if (![arrayNAme containsObject: wrappingBy]) {
[arrayNAme addObject: wrappingBy];
}
你将获得arrayNAMe包含以下内容:
arrayNAme=@[@"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];
}
}
}
最后你有字典:
{
bag = (
"bag!@$#",
"!@@4bag"
);
box = (
box3523sfgsg,
boxsdfsdf3
);
tube = (
"tube@#$FR",
tubeASAD
);
}
现在,您可以获取每个键值并将它们存储在单独的数组中。