我正在开发一个旅行应用程序,我必须阅读包含所有州和国家的txt文件,因为您可以注意到这是一个非常庞大的文件要阅读,无论如何,这是一个内部文本的示例文件:
Zakinthos(ZTH),希腊
Zanesville(ZZV),美国
Zanjan(JWN),伊朗
桑给巴尔(ZNZ),坦桑尼亚
...
现在我正在阅读文件没有问题,但我不知道如何创建两个数组,一个是状态,另一个是国家,所以我可以在文本自动完成时将它们显示在表中。
我尝试使用NSScanner作为分隔符使用“,”但我不知道如何使其工作,我也尝试使用NSString方法没有结果。
欢迎任何帮助,谢谢你提前!!!。
对不起我的英文XD
答案 0 :(得分:71)
将NSString拆分为NSArray的最简单方法如下:
NSString *string = @"Zakinthos (ZTH),GREECE";
NSArray *stringArray = [string componentsSeparatedByString: @","];
这对你有用。你试过这个吗?
答案 1 :(得分:8)
为了扩展hspain的答案,并使解决方案更符合问题,我将向您提供以下内容
NSString *string = @"Zakinthos (ZTH),GREECE";
NSArray *stringArray = [string componentsSeparatedByString: @","];
这给你一个2元素数组:[@“Zakinthos(ZTH)”,@“GREECE”];
从这里你可以很容易地到达这个国家。NSString *countryString = stringArray[1]; // GREECE
并重复该过程以进一步完善:
NSArray *stateArray = [(NSString*)stringArray[0] componentsSeparatedByString:@" "];
stateArray现在看起来像这样[@“Zakinthos”,@“(ZTH)”];
NSString *stateString = stateArray[0]; // Zakinthos
现在你将Country和State分隔成他们自己的字符串,你可以用这样的方法构建新的数组:
NSMutableArray *countryArray = [NSMutableArray arrayWithObjects:countryString, nil];
NSMutableArray *stateArray = [NSMutableArray arrayWithObjects:stateString, nil];
在处理您的位置文档时,您可以通过以下内容将更多国家/地区和状态添加到其正确的数组中:
[countryArray addObject:newCountryString];
[stateArray addObject:newStateString];