在出现特定符号时编辑NSString

时间:2014-01-15 20:36:49

标签: ios objective-c nsstring

我有一个我正在回收的NSString,可以是任意数量的字符。我想要实现的是阅读所有字符,直到找到'/'正斜杠,然后用'+'加号替换那个和之后的任何字符。

我不确定是谁继续这样做。任何帮助或建议将不胜感激。

3 个答案:

答案 0 :(得分:3)

就像这样:

NSString *longString = ... // your long string
NSRange slashRange = [longString rangeOfString:@"/"];
if (slashRange.location != NSNotFound) {
    NSString *plusString = [[longString substringToIndex:slashRange.location] stringByAppendingString:@"+"];
} else {
    // oops - no slash in the string 
}

我意识到你可能想要一些不同的东西。是否要使用单个+替换斜杠和所有内容?或者是否要使用+替换斜杠后的每个字符?

答案 1 :(得分:0)

这段代码首先检查整个字符串中的字符。如果找到一个,那么你得到该索引的子串并在其周围创建一个NSMutableString。然后只需添加“+”符号,直到与原始字符串的长度相同。这应该可以解决问题,尽管我可能更容易理解。

NSUInteger location = [yourString rangeOfString:@"/"].location;
if(location != NSNotFound)
{
    int length = [yourString length];
    yourString = [yourString substringToIndex:location];
    NSMutableString *returnString = [[NSMutableString alloc] initWithString:[yourString substringToIndex:location]];
    while([returnString length] <= length)
    {
        [returnString appendString:@"+"];
    }
}

答案 2 :(得分:0)

以前的答案可能对您的情况更好,但为了完整性,我会提到正则表达式。

NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern: @"\/.*" 
                                                                       options: 0 
                                                                         error: NULL];
yourString = [regex stringByReplacingMatchesInString: yourString 
                                             options: 0 
                                               range: NSMakeRange(0, [yourString length]) 
                                        withTemplate: @"\+"];