我有一个名为coordinates.txt的文本文件,里面有一些坐标(令人惊讶)。格式如下:
20.580070,47.775910,
20.582950,47.776640,
20.585660,47.777460,
20.587280,47.777960,
20.588280,47.778300,
20.621870,47.789710,
我想解析整个文件,并将第一个坐标添加到名为latitude的int变量,将第二个坐标添加到名为longitude的int变量。然后将两个变量打印到控制台并分别为每一行执行此操作。我知道我应该使用循环,但我不确定你们怎么可以帮助我!
修改
到目前为止,这是我的代码:
NSString *latitude = @"0";
NSString *longitude = @"0";
NSString* filePath = @"/Users/Balazs/coordinates.txt";
NSString *entireFileInString = [NSString stringWithContentsOfFile:filePath];
NSArray *lines = [entireFileInString componentsSeparatedByString:@","];
for (NSString *line in lines) {
latitude = line;
}
NSLog([NSString stringWithFormat:@"%@",latitude]);
我知道如何将整个文本读入纬度变量,但不仅仅是第一部分,而不是逐行。此外,读取的文本存储为字符串,因此我不确定如何将它们转换为双打..
PS:对于noob问题抱歉!!:/
答案 0 :(得分:2)
假设您的捆绑包中有文本文件,您可以将文本存储在NSString
中,如下所示:
NSString* path = [[NSBundle mainBundle] pathForResource:@"coordinates"
ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:NULL];
然后使用componentsSeparatedByString:
将文本分隔为行,使用循环遍历每一行,然后在打印前使用componentsSeparatedByString:
将每行再次分隔为其经度和纬度值。例如:
NSArray *lines = [content componentsSeparatedByString:@"\n"];
for (NSString *line in lines) {
NSArray *values = [line componentsSeparatedByString:@","];
double latitude = [[values objectAtIndex:0] doubleValue];
double longitude = [[values objectAtIndex:1] doubleValue];
NSLog(@"%f, %f", latitude, longitude);
}