División de Objective-C ()?

110

¿Hay alguna forma de dividir cadenas en el objetivo c en matrices? Me refiero a esto: cadena de entrada Sí: 0: 42: valor en una matriz de (Sí, 0,42, valor)?

Christian Stewart
fuente

Respuestas:

199
NSArray *arrayOfComponents = [yourString componentsSeparatedByString:@":"];

donde yourString contiene @"one:two:three"

y arrayOfComponents contendrá @[@"one", @"two", @"three"]

y puedes acceder a cada uno con NSString *comp1 = arrayOfComponents[0];

( https://developer.apple.com/documentation/foundation/nsstring/1413214-componentsseparatedbystring )

mipadi
fuente
29
Tenga en cuenta que la inversa es [NSArray componentsJoinedByString:].
devios1
Tengo un problema si hago @ "Hola mundo". Devolverá una matriz de 3 objetos, de los cuales el último contiene @ "". Podría recorrer la matriz y eliminarla, pero ¿hay una manera mejor?
Au Ris
1
@AuRis primero intente recortar el espacio en blanco de la cadena: [cadena stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
theDuncs
95

Prueba esto:

    NSString *testString= @"It's a rainy day";
    NSArray *array = [testString componentsSeparatedByString:@" "];
Prabh
fuente
4

Utilice esto: [[string componentsSeparatedByString: @ ","] [0];

Josep Escobar
fuente
6
Todavía me pregunto por qué la gente responde a preguntas que tienen EDADES y han establecido respuestas ... Sin mencionar que la suya simplemente selecciona el primer elemento que no tiene sentido.
Christian Stewart
0

si quieres acceder a la primera palabra:

[[string componentsSeparatedByString:@" "] objectAtIndex:0];
UMUT
fuente