代码之家  ›  专栏  ›  技术社区  ›  Mihir Oza

如何将NSString分隔为两个不同的数组,即Objective-C中的key和value?

  •  0
  • Mihir Oza  · 技术社区  · 4 年前

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

    “姓名=米希尔,年龄=34岁,过敏=发烧,酸痛 喉部,测试=否,州=罗德岛”

    所以我需要把这个字符串转换成两个数组,一个数组在=之前,另一个数组在等于之后。
    我已经做了一些代码,但我不知道下一步要做什么!
    请看下面我的代码:

    strCustomFields = _incident.CustomFields;
    NSLog(@"strCustomFields = %@",strCustomFields);
    NSArray *items = [strCustomFields componentsSeparatedByString:@"&,"];  
    

    这里我已经分为数组,所以现在我有6个数组,但现在如何使我的数组键和值如下?
    array1=姓名、年龄、过敏、症状、测试、状态
    array2=Mihir,34岁,发烧喉咙痛,No,罗德岛州

    0 回复  |  直到 4 年前
        1
  •  1
  •   ish1313    4 年前

    好吧,您可以遍历项,将每个项按“=”拆分,并将键和值放在两个不同的NSMUtableArray中

    可能还有其他的方法,这取决于你想做什么。

        2
  •  -1
  •   Mihir Oza    4 年前

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