我有一个我正在回收的NSString,可以是任意数量的字符。我想要实现的是阅读所有字符,直到找到'/'正斜杠,然后用'+'加号替换那个和之后的任何字符。
我不确定是谁继续这样做。任何帮助或建议将不胜感激。
答案 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: @"\+"];