Удалить часть строки NSString и скопировать ее в другую строку NSString - PullRequest
4 голосов
/ 30 августа 2011

Итак, у меня есть строка NSString, скажем так: NSString *mainString = @"My Name is Andrew (I like computers)"; И я хочу удалить все из "(" в ")" из mainString. И я хочу поместить все между "()" в подстроку.

Например:

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";

Надеюсь, это имеет смысл. Это действительно помогло бы мне. Заранее спасибо. Я играл с NSRange и NSMutableStrings, но у меня проблемы. Заранее спасибо.

Ответы [ 2 ]

9 голосов
/ 30 августа 2011
int startPosition = [mainString rangeOfString:@"("].location + 1;
int endPosition   = [mainString rangeOfString:@")"].location;

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

NSString *subString = [mainString substringWithRange:range];

и как darvids0n упомянул в комментариях ниже:

    mainString = [mainString substringToIndex:startPosition - 1]
7 голосов
/ 30 августа 2011

Это, вероятно, более простой способ:

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"
...