【问题标题】:Remove Part of an NSString and copy it into another NSString删除部分 NSString 并将其复制到另一个 NSString
【发布时间】:2011-08-30 04:38:26
【问题描述】:

所以我有一个 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,但我遇到了麻烦。提前致谢。

【问题讨论】:

    标签: iphone objective-c nsstring substring nsrange


    【解决方案1】:
    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]
    

    【讨论】:

    • 然后是string = [string substringToIndex:startPosition - 1]
    • 不,我们创建范围的方式是它会处理“)”。所以 substringtoindex: 这里不需要
    【解决方案2】:

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

    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"
    

    【讨论】:

    • 非常感谢您。我刚刚意识到我可能是第 10 次使用此代码。它真的帮助了我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 2012-09-08
    • 2013-03-25
    • 2014-09-10
    • 2014-05-18
    相关资源
    最近更新 更多