Cadenas de Objective-C
La cadena en el lenguaje de programación Objective-C se representa mediante NSString y su subclase NSMutableString proporciona varias formas de crear objetos de cadena. La forma más sencilla de crear un objeto de cadena es utilizar la construcción Objective-C @ "..." -
NSString *greeting = @"Hello";
A continuación, se muestra un ejemplo sencillo para crear e imprimir una cadena.
#import <Foundation/Foundation.h>
int main () {
NSString *greeting = @"Hello";
NSLog(@"Greeting message: %@\n", greeting );
return 0;
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
2013-09-11 01:21:39.922 demo[23926] Greeting message: Hello
Objective-C admite una amplia gama de métodos para manipular cadenas:
No Señor. | Método y propósito |
---|---|
1 | - (NSString *)capitalizedString; Devuelve una representación en mayúscula del receptor. |
2 | - (unichar)characterAtIndex:(NSUInteger)index; Devuelve el carácter en una posición de matriz determinada. |
3 | - (double)doubleValue; Devuelve el valor de punto flotante del texto del receptor como un doble. |
4 | - (float)floatValue; Devuelve el valor de coma flotante del texto del receptor como flotante. |
5 | - (BOOL)hasPrefix:(NSString *)aString; Devuelve un valor booleano que indica si una determinada cadena coincide con los caracteres iniciales del receptor. |
6 | - (BOOL)hasSuffix:(NSString *)aString; Devuelve un valor booleano que indica si una determinada cadena coincide con los caracteres finales del receptor. |
7 | - (id)initWithFormat:(NSString *)format ...; Devuelve un objeto NSString inicializado utilizando una cadena de formato determinada como plantilla en la que se sustituyen los valores restantes de los argumentos. |
8 | - (NSInteger)integerValue; Devuelve el valor NSInteger del texto del receptor. |
9 | - (BOOL)isEqualToString:(NSString *)aString; Devuelve un valor booleano que indica si una cadena dada es igual al receptor mediante una comparación literal basada en Unicode. |
10 | - (NSUInteger)length; Devuelve el número de caracteres Unicode en el receptor. |
11 | - (NSString *)lowercaseString; Devuelve la representación del receptor en minúsculas. |
12 | - (NSRange)rangeOfString:(NSString *)aString; Busca y devuelve el rango de la primera aparición de una cadena dada dentro del receptor. |
13 | - (NSString *)stringByAppendingFormat:(NSString *)format ...; Devuelve una cadena hecha agregando al receptor una cadena construida a partir de una cadena de formato dada y los siguientes argumentos. |
14 | - (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set; Devuelve una nueva cadena creada al eliminar de ambos extremos los caracteres del receptor contenidos en un conjunto de caracteres dado. |
15 | - (NSString *)substringFromIndex:(NSUInteger)anIndex; Devuelve una nueva cadena que contiene los caracteres del receptor desde el que está en un índice dado hasta el final. |
El siguiente ejemplo hace uso de algunas de las funciones mencionadas anteriormente:
#import <Foundation/Foundation.h>
int main () {
NSString *str1 = @"Hello";
NSString *str2 = @"World";
NSString *str3;
int len ;
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
/* uppercase string */
str3 = [str2 uppercaseString];
NSLog(@"Uppercase String : %@\n", str3 );
/* concatenates str1 and str2 */
str3 = [str1 stringByAppendingFormat:@"World"];
NSLog(@"Concatenated string: %@\n", str3 );
/* total length of str3 after concatenation */
len = [str3 length];
NSLog(@"Length of Str3 : %d\n", len );
/* InitWithFormat */
str3 = [[NSString alloc] initWithFormat:@"%@ %@",str1,str2];
NSLog(@"Using initWithFormat: %@\n", str3 );
[pool drain];
return 0;
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
2013-09-11 01:15:45.069 demo[30378] Uppercase String : WORLD
2013-09-11 01:15:45.070 demo[30378] Concatenated string: HelloWorld
2013-09-11 01:15:45.070 demo[30378] Length of Str3 : 10
2013-09-11 01:15:45.070 demo[30378] Using initWithFormat: Hello World
Puede encontrar una lista completa de los métodos relacionados con Objective-C NSString en NSString Class Reference.