Имам txt файл, който беше копиран в поддържащи файлове на моя Xcode проект. Данните в txt файла са във формат:
abacus@frame with balls for calculating
abate@to lessen to subside
abdication@giving up control authority
aberration@straying away from what is normal
....................around 4000 lines
Успешно извлякох данни от файла с помощта на кода по-долу:
NSString *greFileString = [NSString stringWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"grewords" ofType:@"txt"] encoding:NSUTF8StringEncoding error:nil];
self.greWordsArray = [NSMutableArray arrayWithArray:[greFileString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
Когато отпечатам greWordsArray, мога да видя изхода по-долу в регистрационния файл
"abacus@frame",
with,
balls,
for,
calculating,
"",
"abate@to",
lessen,
to,
subside,
"",
"abdication@giving",
up,
control,
authority,
"",
"aberration@straying",
away,
from,
what,
is,
normal,
"",
Но искам стойностите в два отделни масива, единият да съдържа абак, абат, абдикация, аберация на авторитета и друг масив с рамка с топки за изчисляване, да намаляват, за да отшумят, отказвайки се от контрола, отклонявайки се от това, което е нормално, т.е. един масив, съдържащ низ преди символ @ и един със след символ @
Знам, че има няколко метода като проверка за специален символен метод, низ чрез заместване на срещания низ, използване на набор от знаци, но фактът е, че тъй като моят низ greFileString е пакет, съдържащ множество низове, ако опитам някой от тези методи, получава само abacus добавен към масива, но искам абакус, абате, абдикация, аберация да бъдат добавени към масива.
РЕДАКТИРАНЕ
Следвайки предложението за H2CO3, внедрих следния начин:
NSString *greFileString = [NSString stringWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"grewords" ofType:@"txt"] encoding:NSUTF8StringEncoding error:nil];
NSArray *greData = [NSArray arrayWithArray:[greFileString componentsSeparatedByString:@"@"]];
self.greWordsArray = [NSMutableArray array];
self.greWordHints = [NSMutableArray array];
for (NSString *greWord in greData)
{
if ([greWord characterAtIndex:0] == (unichar)'@')
{
[greWordHints addObject:greWord];
}
else
{
[greWordsArray addObject:greWord];
}
}
NSLog(@"gre words are %@",greWordsArray);
NSLog(@"gre hints are %@",greWordHints);
Ето регистрирания изход:
gre words are (
abacus,
"frame with balls for calculating
\nabate",
"to lessen to subside
\nabdication",
"giving up control authority
\naberration",
"straying away from what is normal
\nabet",
"help/encourage somebody (in doing wrong)
\nabeyance",
"suspended action
\nabhor",
"to hate to detest
gre hints are (
)
Може ли някой да ме насочи за това?
NSArray
или увивате масива в речник и пишете този речник и бум, имате списък със свойства... Не мога да повярвам, че изследването на това е толкова трудно... - person   schedule 23.05.2013NSDictionary
го прави за под 0,1 секунди... и така или иначе го правите само веднъж... - person   schedule 23.05.2013