У меня есть текстовый файл, который был скопирован во вспомогательные файлы моего проекта Xcode. Данные в текстовом файле имеют формат:
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 представляет собой пакет, содержащий несколько строк, если я попробую любой из этих методов, только счеты получат добавлен в массив, но я хочу, чтобы счеты, уменьшение, отречение, аберрация были добавлены в массив.
ИЗМЕНИТЬ
Следуя предложению 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