2011-08-30 2 views
4

Donc, j'ai un NSString, disons-le: NSString *mainString = @"My Name is Andrew (I like computers)"; Et je veux supprimer tout de la "(" à la ")" de mainString. Et je veux mettre tout ce qu'il y a entre le "()" dans un sous-chaîne.Supprimer une partie d'un NSString et copiez-le dans un autre NSString

Par exemple:

NSString *mainString = @"My Name is Andrew (I like computers)"; 
NSString *subString; 

//The code I need help with 

mainString = @"y Name is Andrew "; 
subString = @"I like computers"; 

J'espère que cela a du sens. Cela m'aiderait vraiment. Merci d'avance. J'ai joué avec NSRange et NSMutableStrings mais j'ai des problèmes. Merci d'avance.

Répondre

7

Ceci est probablement un moyen plus facile:

NSString *mainString = @"My Name is Andrew (I like computers)"; 
NSString *subString; 

NSArray *array = [mainString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"()"]]; 

mainString = [array objectAtIndex:0]; // "My Name is Andrew " 
subString = [array objectAtIndex:1]; // "I like computers" 
+0

Merci beaucoup pour cela. Je viens de réaliser que je viens d'utiliser ce code pour probablement la 10ème fois. Cela m'a vraiment aidé – Andrew

9
int startPosition = [mainString rangeOfString:@"("].location + 1; 
int endPosition = [mainString rangeOfString:@")"].location; 

NSRange range = NSMakeRange(startPosition, endPosition - startPosition); 

NSString *subString = [mainString substringWithRange:range]; 

et comme darvids0n a mentionné dans ci-dessous un commentaire:

mainString = [mainString substringToIndex:startPosition - 1] 
+0

Et puis 'string = [chaîne substringToIndex: startPosition - 1]' . – darvids0n

+0

non, nous avons créé gamme de telle sorte qu'il prendra soin de la ")". donc substringtoindex: n'est pas requis ici – Robin

+0

Merci pour la réponse – Andrew

Questions connexes