2017-02-03 16 views
0

NSString *testString = @"Abcd!!!!";と言って、4つの感嘆符に注意してください。できるだけ効率的にすべての感嘆符を削除するにはどうすればよいですか?文字列の末尾に出現を削除する - iOS

感嘆符には任意の数を指定できます。感嘆符は、連続した後続の順序でのみ削除できます。

一つの例は次のようになります。 NSString *testString = @"ABC!D!!!!!";

結果は次のようになります。 NSString *result = @"ABC!D";

+0

単純なパターンがちょうどいいです... "最後はa!、最後を取り除く"です。 – Fattie

答えて

2

あなたはどのように多くを知らないので!あなたは文字列から削除されます、あなたは正規表現でそれを行うことができます。

NSString *string = @"ABC!D!!!!!"; 
NSError *error = nil; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"!+$" options:NSRegularExpressionCaseInsensitive error:&error]; 
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""]; 
NSLog(@"%@", modifiedString); 

正規表現は、常にこれらの種類の問題を解決するために最も効率的な方法ではありませんが、この場合には、私はそれを別の方法をやって測定可能なゲインがあるだろうとは思いません。

+0

それらを数えることは本当にこのように動作するわけではありません(正規表現のキャプチャグループを作っていないのですが、物事が複雑になってきたら 'stringByTrimmingCharactersInSet'を使うほうが良いです。修正された文字列の長さに元の文字列? – brandonscript

関連する問題