Лучший способ разбить строки на массив

Я разрабатываю приложение для путешествий, мне нужно прочитать текстовый файл, содержащий все штаты и страны, как вы можете заметить, это довольно большой файл для чтения, в любом случае, это пример текста внутри файла:

Закинф (ZTH), ГРЕЦИЯ
Занесвилль (ZZV), США
Занджан (JWN), ИРАН
Занзибар (ZNZ), ТАНЗАНИЯ
...

Теперь я читаю файл без проблем, но я не знаю, как создать два массива, один со штатом, а другой со страной, чтобы я мог отображать их в таблице при автозаполнении текста.

Я пытался использовать NSScanner, используя «,» в качестве разделителя, но я не знаю, как это сделать, а также пробовал использовать методы NSString без каких-либо результатов.

Любая помощь приветствуется, Заранее спасибо!!!.

Кстати извините за мой английский XD


person Rafael Jimeno    schedule 02.08.2011    source источник


Ответы (2)


Самый простой способ разделить NSString на NSArray:

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

Это должно сработать для вас. Вы пробовали это?

person hspain    schedule 02.08.2011
comment
Да, дело в том, что все данные идут в один и тот же массив, мне нужно иметь 2 массива, поэтому в таблице я могу показать состояние, а в качестве подробного текста страну. Спасибо за ответы. - person Rafael Jimeno; 04.08.2011
comment
Если ответ помог, вы должны выбрать его как правильный ответ. - person rm -rf slash; 12.03.2014

Чтобы расширить ответ 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];
person Yup.    schedule 18.02.2015