Как отделить первую строку перед @ ";"в массиве? - PullRequest
1 голос
/ 22 сентября 2011

Я хотел бы разбить строку в массиве:

NSString *test = @"How are you;<random>[Good;Bad]";
NSArray *howareyou = [test componentsSeparatedByString:@";"]

Но тогда она разбивает <random>[Good и Bad] ...

Я просто хочу разбитьHow are you и <random>[Good;Bad]

Как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 22 сентября 2011
NSString *test = @"How are you;<random>[Good;Bad]"; 
NSRange colonRange = [test rangeOfString:@";"];
if (colonRange.location != NSNotFound){
    NSString *firstHalf = [test substringToIndex:colonRange.location];
    NSString *secondHalf = [test substringFromIndex:NSMaxRange(colonRange)];
    NSLog(@"%@ - %@", firstHalf, secondHalf);
}else{
    NSLog(@"No luck");
}
0 голосов
/ 22 сентября 2011
NSString *test = @"How are you;<random>[Good;Bad]";
NSArray *howareyou = [test componentsSeparatedByString:@";"];

NSString *desired = [howareyou objectAtIndex:0];
NSString *rest = [[howareyou subarrayWithRange:NSMakeRange(1, [howareyou count]-1)]
                        componentsJoinedByString:@";"];

Не становится намного менее эффективным (или хрупким - без проверки ошибок, проверки диапазона, проверки длины и т. Д.), Чем это.Прекрасно подходит для нескольких строк здесь и там ограниченной длины, вероятно, неприемлемо для большого ввода и т. П.

Измерьте в первую очередь.Оптимизировать после.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...