¿Cuál sería la mejor manera de get cada subcadena entre comillas dobles y convertirla en una matriz?
Por ejemplo, si la cadena (NSString) es:
@"abcd \"efgh\" ijklm \"no\" p \"qrst\" uvwx \"y\" z"
Quiero que el resultado sea:
{@"efgh", @"no", @"qrst", @"y"}
como un NSArray.
Esto debería comenzar:
NSString *str = @"abcd \"efgh\" ijklm \"no\" p \"qrst\" uvwx \"y\" z"; NSMutableArray *target = [NSMutableArray array]; NSScanner *scanner = [NSScanner scannerWithString:str]; NSString *tmp; while ([scanner isAtEnd] == NO) { [scanner scanUpToString:@"\"" intoString:NULL]; [scanner scanString:@"\"" intoString:NULL]; [scanner scanUpToString:@"\"" intoString:&tmp]; if ([scanner isAtEnd] == NO) [target addObject:tmp]; [scanner scanString:@"\"" intoString:NULL]; } for (NSString *item in target) { NSLog(@"%@", item); }
Una forma sería utilizar componentsSeparatedByString:
para dividirlos en function de "
. Esto debería darle un set de palabras cuya count debe ser impar. Filtre todas las palabras pares en una matriz. Debe ser su matriz deseada.
Alternativamente, mire NSPnetworkingicate
.