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」に変換されました

正規表現[!?., ]+は、角括弧内にリストされた 1 つ以上の文字の任意のシーケンスを意味します。

アップデート:

末尾のハイフンを切り捨てたい場合は、次のようにします。

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