解析保存到文本文件的字符串

时间:2011-05-29 00:16:50

标签: objective-c cocoa macos nsstring text-files

我将Cocoa应用程序中的数据保存到文本文件中。文本文件包含如下所示的信息:

foo1 -> foo2
blah -> lwjef
hi -> bye
hello -> goodbye

现在每行的第一部分由用户提供,但我需要在->之后获取每一行的一部分。例如,如果用户输入foo1,我想在解析文本文件后输出foo2。有谁知道怎么做?

1 个答案:

答案 0 :(得分:3)

解析一次:

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
NSArray *lines = [string componentsSeparatedByCharactersInSet: [NSCharacterSet newlineCharacterSet]];
for (NSString *line in lines) {
    NSArray *values = [line componentsSeparatedByString:@" -> "];
    if ([values count] != 2) {
        continue;
    }
    [dictionary setObject:[values objectAtIndex:1] forKey:[values objectAtIndex:0]];
}

然后查询键:

NSString *input = @"foo1";
NSString *answer = [dictionary objectForKey:input]; //@"foo2"

但是,如果数据最初来自您自己的应用程序,您可能应该这样做,而不是自定义(和不安全)的字符串格式:

//For saving:
[dictionary writeToFile:filePath atomically:YES];
//For loading:
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:filePath];