大家好,我有一个字符串,例如
"Name=Mihir&,Age=34&,Allergy=&,Symptoms=Fever,Sore throat&,Tested=No&,State=Rhode Island"
所以我需要把这个字符串转换成2个数组key和value,比如一个数组在=之前,另一个数组在等于之后。我已经做了一些代码,但我不知道下一步该怎么做! 请看我下面的代码。
strCustomFields = _incident.CustomFields;
NSLog(@"strCustomFields = %@",strCustomFields);
NSArray *items = [strCustomFields componentsSeparatedByString:@"&,"];
在这里,我已经分离成数组,所以现在我有6个数组,但现在如何使我的数组的键和值像下面? array1 =姓名,年龄,过敏,症状,测试,状态 array2 = Mihir,34,,发烧喉咙痛,没有,罗德岛。
好吧,你可以通过项目进行迭代,用'='分割每个项目,然后把键和值放在两个不同的NSMUtableArray中。
但可能使用NSDictionary来保存键值对会更好。
可能有另一种方法,取决于你想做什么。
得到了我的答案,可能是它的很长的方式来获得,但它为我工作。
NSArray *items = [strCustomFields componentsSeparatedByString:@"&,"];
NSArray *subArr = nil;
NSMutableArray *arr1 = [[NSMutableArray alloc] init];
for (NSString* currentString in items) {
subArr = [currentString componentsSeparatedByString:@"="];
[arr1 addObject:[subArr objectAtIndex:0]];
[arr1 addObject:[subArr objectAtIndex:1]];
NSLog(@"subArr = %@", subArr);
}
NSLog(@"arr1 = %@", arr1);
for (int i = 0; i< [arr1 count]/ 2; i++) {
myCustomView.lbltitle.text = [NSString stringWithFormat:@"%@", [arr1 objectAtIndex:(i *2)]];
myCustomView.lblvalue.text = [NSString stringWithFormat:@"%@", [arr1 objectAtIndex:(i * 2) + 1]];
}