10.06.2008
NSString und NSMutableString
In diesem Artikel werden die Klassen NSString und NSMutableString kurz beschrieben. Außerdem wird die Anwendung einiger weniger ausgewählter Funktionen demonstriert.
void stringTest() {
//Declare NSString
NSString* zeichenkette;
//Allocate and initialize NSString
zeichenkette = [[NSString alloc] initWithString:@"Hello World!"];
//Print NSString
NSLog(@"Zeichenkette: %@",zeichenkette);
//Print Length of the NSString
NSLog(@"Length: %i", [zeichenkette length]);
//Print Substring of the NSString
NSLog(@"Substring: %@", [zeichenkette substringToIndex:5]);
//Search for 'W'
NSMutableCharacterSet* searchCharacters = [NSCharacterSet characterSetWithCharactersInString:@"W"];
//Start search
NSRange resultRange = [zeichenkette rangeOfCharacterFromSet:searchCharacters];
//Print results
NSLog(@"Gefunden: %i", resultRange.length);
NSLog(@"Position: %i", resultRange.location);
//Deallocation NSString
[zeichenkette release];
}
Als erstes wird eine Variable zeichenkette deklariert, allokiert und initialisiert. Diese Variable wird anschließend ausgegeben. Danach werden die Funktionen length und substringToIndex aufgerufen und jeweils das Ergebnis ausgegeben.
Als Letztes wird die Suchfunktionalität von NSString demonstriert. Dazu wird eine Menge von Buchstaben NSMutableCharacterSet (in dem Beispiel nur ein Buchstabe) deklariert. Danach wird die Suche auf der Zeichenkette durchgeführt. Als Ergebnis erhält man ein Objekt von Typ NSRange. Dieses enthält die Anzahl der Fundstellen und die Position der Fundes.
Der "Nachteil" von NSString ist, daß der Wert und die Länge des Strings nicht verändert werden können. D.h. es ist nicht möglich neue Zeichen hinzuzufügen oder zu entfernen. Dies wurde aus Performance-Gründen so gemacht.
Abhilfe kann die Klasse NSMutableString schaffen. Dies zeigt das folgende Beispiel:
void stringMutableTest() {
//Declare NSMutableString
NSMutableString* zeichenkette;
//Allocate and initialize NSMutableString
zeichenkette = [[NSMutableString alloc] initWithString:@"Hello World!"];
//Append NSString
[zeichenkette appendString:@" Hello Europe!"];
//Index NSString at index 5
[zeichenkette insertString:@" Hugo" atIndex:5];
//Print NSString
NSLog(@"Zeichenkette: %@",zeichenkette);
//Deallocation NSString
[zeichenkette release];
}
Auch hier wird als erste die Variable zeichenkette deklariert, allokiert und initialisiert. Als nächstes wird mit der Funktion appendString eine Zeichenkette angehängt. Danach wird mit der Funktion insertString an der Position 5 der Wert Hugo eingefügt. Abschließend wird die komplette Zeichenkette ausgegeben.
Im Folgenden ist die Konsolenausgabe beider Funktionen zu sehen:
2008-06-10 18:40:35.551 ContainerTest[51085:10b] Zeichenkette: Hello World! 2008-06-10 18:40:35.552 ContainerTest[51085:10b] Length: 12 2008-06-10 18:40:35.553 ContainerTest[51085:10b] Substring: Hello 2008-06-10 18:40:35.553 ContainerTest[51085:10b] Gefunden: 1 2008-06-10 18:40:35.554 ContainerTest[51085:10b] Position: 6 2008-06-10 18:40:35.555 ContainerTest[51085:10b] Zeichenkette: Hello Hugo World! Hello Europe!
