gpt4 book ai didi

objective-c - for循环解析换行符然后等号并将其放入字典中

转载 作者:行者123 更新时间:2023-12-03 17:40:12 26 4
gpt4 key购买 nike

NSString *result 

结果包含:

NC_AllowedWebHosts=
NC_BgeLAN=br1
NC_Doc=/tmp/dhd=
NC_ExPts=1863==
NC_Redirect=1
[...]
binary_custom=/path/to/directory
blocklist=0
blocklist_url=http://list.g.com/?list=
[...]

我正在使用这个函数,但我在解析带有双 == 或三重 === 的列表时遇到问题。

NSArray *strings = [result componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"=\r\n"]];
NSMutableArray *keys = [NSMutableArray new];
NSMutableArray *values = [NSMutableArray new];

for (int i = 0; i+1 < strings.count; i+=2) {
[keys addObject:strings[i]];
[values addObject:strings[i+1]];
}

我想首先根据新行“\r\n”解析所有内容,然后将第一个“=”符号之前的所有内容放入字典键中,以及之后的所有内容直到字典值中的新行。这样我就可以说获取 key “NC_ExPts”,值将返回“1863==”等等。任何帮助将不胜感激。

@Monolo 我可以逐行阅读,但我不知道如何在第一次出现“=”时获取值并将其放入值和键中

    NSArray *lines = [result componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"\r\n\n"]];

for (NSString* line in lines) {
if (line.length) {
NSLog(@"line: %@", line);
}
}

最佳答案

您需要逐行阅读原文,然后将每一行仅除以第一个“=”号。使用您使用的方法,您可以一次性划分行和键值对,这意味着您会丢失太多有关数据结构的信息。这就是为什么您在处理值部分中包含“==”的行时遇到困难的原因。

NSStringenumerateLinesUsingBlock: 将处理第一部分,并且使用 rangeOfString 可以轻松找到每一行中的第一个“=” :

关于objective-c - for循环解析换行符然后等号并将其放入字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com