2010-10-15 15 views
8

En Xcode, si tengo un número NSString que contiene un número, es decir @ "12345", ¿cómo lo divido en un conjunto que representa las partes componentes, es decir, "1", "2", "3", "4", " 5" ... hay una componentsSeparatedByString en el objeto NSString, pero en este caso no hay ningún delimitador ...¿Cómo se divide NSString en componentes?

Respuesta

4

puede parecer characterAtIndex: que hacer el truco, pero que devuelve un unichar, que no es una El tipo de datos derivado de NSObject no se puede poner en una matriz directamente. Tendrás que construir una nueva cadena con cada unichar.

Una solución más simple es usar substringWithRange: con rangos de 1 carácter. Ejecute su cadena a través de un simple for (int i=0;i<[myString length];i++) bucle para agregar cada rango de 1 carácter a NSMutableArray.

+0

Eso funcionó de maravilla, muchas gracias por la rápida respuesta :-) –

1

Un NSString ya es un conjunto de sus componentes, si los componentes que quiere decir caracteres individuales. Use [string length] para obtener la longitud de la cadena y [string characterAtIndex:] para obtener los caracteres.

Si realmente necesita una matriz de objetos de cadena con un solo carácter, deberá crear esa matriz usted mismo. Pasa el cursor sobre los caracteres de la cadena con un bucle for, crea una nueva cadena con un solo carácter usando [NSString stringWithFormat:] y agrégala a tu matriz. Pero esto usualmente no es necesario.

0

No sé si esto funciona para lo que quiere hacer, pero:

const char *foo = [myString UTF8String] 
char third_character = foo[2]; 

Asegúrese de leer los documentos en UTF8String

1

En su caso, ya que no tienen delimitador, que tienen para obtener caracteres separados por

- (void)getCharacters:(unichar *)buffer range:(NSRange)aRange 

o éste

- (unichar)characterAtIndex:(NSUInteger) index inside a loop. 

Esa es la única forma en que veo, por el momento.

24

Hay una función miembro de la lista NSString por hacer eso:

NSString* foo = @"safgafsfhsdhdfs/gfdgdsgsdg/gdfsgsdgsd"; 
NSArray* stringComponents = [foo componentsSeparatedByString:@"/"];