将字符串拆分为数组的最佳方法

时间:2011-08-02 22:24:38

标签: arrays nsstring split token nsscanner

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

Zakinthos(ZTH),希腊
Zanesville(ZZV),美国
Zanjan(JWN),伊朗
桑给巴尔(ZNZ),坦桑尼亚
...

现在我正在阅读文件没有问题,但我不知道如何创建两个数组,一个是状态,另一个是国家,所以我可以在文本自动完成时将它们显示在表中。

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

欢迎任何帮助,谢谢你提前!!!。

对不起我的英文XD

2 个答案:

答案 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];