2011-08-30 52 views
4

所以我有一個NSString,可以這樣說:NSString *mainString = @"My Name is Andrew (I like computers)"; 我想從mainString中的「(」到「)」中刪除所有內容。我想把「()」之間的所有內容放入一個子字符串中。刪除NSString的一部分,並將其複製到另一個NSString

例如:

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,但我遇到了麻煩。提前致謝。

回答

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" 
+0

非常感謝您的支持。我剛剛意識到我大概是第十次使用這個代碼。它真的幫助了我 – Andrew

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] 
+0

然後'串= [字符串substringToIndex:指定startPosition - 1]' 。 – darvids0n

+0

不,我們以這樣的方式創造了範圍,它會照顧到「)」。所以substringtoindex:這裏不需要 – Robin

+0

感謝您的回答 – Andrew