0

我想让每个字符串看起来像这样:

"this-is-string-one"

所以主字符串可以包含:

"This! is string, one"

所以基本上用“-”替换!?。,空格和类似的字符。

4

1 回答 1

3

像这样的事情最好用正则表达式处理:

NSString *someString = @"This! is string, one";
NSString *newString = [someString stringByReplacingOccurrencesOfString:@"[!?., ]+" withString:@"-" options: NSRegularExpressionSearch range:NSMakeRange(0, someString.length)];
NSLog(@"\"%@\" was converted to \"%@\"", someString, newString);

输出将是:

"This! is string, one" 被转换为 "This-is-string-one"

正则表达式[!?., ]+表示方括号之间列出的一个或多个字符的任何序列。

更新:

如果你想截断任何尾随连字符,那么你可以这样做:

if ([newString hasSuffix:@"-"]) {
    newString = [newString substringToIndex:newString.length - 1];
}
于 2013-05-02T22:23:36.273 回答