1

"How are you doing ?"またはのような文字列がある場合"I am fine ."

どうすれば入手することができますか -

"How are you doing?"また"I am fine."

最後の単語と「?」の間の空白を削除したい また "。"

4

2 に答える 2

5

を使用できますstringByReplacingOccurrencesOfString。オプションを使用するとNSRegularExpressionSearch、さまざまな順列をすべて 1 つのステートメントで処理できます。

NSString *result = [string stringByReplacingOccurrencesOfString:@"\\s+([.?])"
                                                     withString:@"$1"
                                                        options:NSRegularExpressionSearch
                                                          range:NSMakeRange(0, [string length])];

正規表現は暗号化できますが (詳細についてはNSRegularExpression のドキュメントを参照してください)、これは「1 つまたは複数の空白文字 (スペース、タブ、改行など) とそれに続くピリオド (ピリオド) または疑問符で構成される文字列を検索する」ことを示しています。見つかったピリオドまたはクエスチョン マークだけに置き換えてください。」必要に応じてそれを改良することができますが、うまくいけば、これは概念を示しています。

于 2013-08-22T21:12:15.923 に答える
1

それをすぐに行う方法はわかりません。あなたの場合は疑問符やドットのように、必要な文字の範囲を検索し、その前にスペースがあるかどうかを確認し、場合によってはスペースを削除します。これは例です:

NSString* str= @"How are you doing ?";
NSRange range= [str rangeOfCharacterFromSet: [NSCharacterSet characterSetWithCharactersInString: @".?"]];
if(range.location!= NSNotFound)
{
    if(range.location>0 && [str characterAtIndex: range.location-1]==' ')
    {
        str= [str stringByReplacingCharactersInRange: NSMakeRange(range.location-1, 1) withString: @""];
    }
}
于 2013-08-22T21:11:21.970 に答える