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)?

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 )


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:@" "];


4

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


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];
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.