すべての文字列を次のようにしたい:
"this-is-string-one"
したがって、主な文字列には次のものを含めることができます。
"This! is string, one"
したがって、基本的に!?.、空白、およびそのような文字は「-」に置き換えます。
すべての文字列を次のようにしたい:
"this-is-string-one"
したがって、主な文字列には次のものを含めることができます。
"This! is string, one"
したがって、基本的に!?.、空白、およびそのような文字は「-」に置き換えます。
次のようなものは、正規表現で処理するのが最適です。
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」に変換されました
正規表現[!?., ]+
は、角括弧内にリストされた 1 つ以上の文字の任意のシーケンスを意味します。
アップデート:
末尾のハイフンを切り捨てたい場合は、次のようにします。
if ([newString hasSuffix:@"-"]) {
newString = [newString substringToIndex:newString.length - 1];
}