我想让每个字符串看起来像这样:
"this-is-string-one"
因此主字符串可以包含:
"This! is string, one"
所以基本上替换!?。,空白和像“ - ”那样的字符。
答案 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];
}