25

我正在开发一个旅行应用程序,我必须阅读一个包含所有州和国家/地区的 txt 文件,因为您会注意到这是一个非常大的文件,无论如何,这是文件中的文本示例:

Zakinthos (ZTH),希腊
Zanesville (ZZV),美国
Zanjan (JWN),伊朗
Zanzibar (ZNZ),TANZANIA
...

现在我正在毫无问题地读取文件,但我不知道如何创建两个数组,一个与州有关,另一个与国家/地区有关,因此我可以在自动完成文本时将它们显示到表格中。

我尝试使用 NSScanner 使用“,”作为分隔符,但我不知道如何使它起作用,而且我尝试使用 NSString 方法但没有结果。

欢迎任何帮助,在此先感谢您!!!!

顺便说一句,对不起我的英语 XD

4

2 回答 2

76

将 NSString 拆分为 NSArray 的最简单方法如下:

NSString *string = @"Zakinthos (ZTH),GREECE";
NSArray *stringArray = [string componentsSeparatedByString: @","];

这应该适合你。你试过这个吗?

于 2011-08-02T22:40:52.957 回答
10

为了扩展 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];
于 2015-02-18T18:21:57.910 回答