用 - 替换特殊字符或空格 -

时间:2013-05-02 22:09:05

标签: objective-c nsstring character

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

"this-is-string-one"

因此主字符串可以包含:

"This! is string, one"

所以基本上替换!?。,空白和像“ - ”那样的字符。

1 个答案:

答案 0 :(得分: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];
}