如何在Objective-C中把我的NSString分离成两个不同的数组,即key和value?

问题描述 投票:0回答:1

大家好,我有一个字符串,例如

"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,,发烧喉咙痛,没有,罗德岛。

ios objective-c nsstring nsarray componentsseparatedbystring
1个回答
1
投票

好吧,你可以通过项目进行迭代,用'='分割每个项目,然后把键和值放在两个不同的NSMUtableArray中。

但可能使用NSDictionary来保存键值对会更好。

可能有另一种方法,取决于你想做什么。


-1
投票

得到了我的答案,可能是它的很长的方式来获得,但它为我工作。

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]];
        }
© www.soinside.com 2019 - 2024. All rights reserved.