4

所以我有一个 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";

我希望这是有道理的。这真的会帮助我。提前致谢。我一直在玩,NSRangeNSMutableStrings我遇到了麻烦。提前致谢。

4

2 回答 2

9
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]
于 2011-08-30T04:41:58.210 回答
7

这可能是一种更简单的方法:

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"
于 2011-08-30T05:12:39.980 回答