"How are you doing ?"
またはのような文字列がある場合"I am fine ."
どうすれば入手することができますか -
"How are you doing?"
また"I am fine."
最後の単語と「?」の間の空白を削除したい また "。"
"How are you doing ?"
またはのような文字列がある場合"I am fine ."
どうすれば入手することができますか -
"How are you doing?"
また"I am fine."
最後の単語と「?」の間の空白を削除したい また "。"
を使用できますstringByReplacingOccurrencesOfString
。オプションを使用するとNSRegularExpressionSearch
、さまざまな順列をすべて 1 つのステートメントで処理できます。
NSString *result = [string stringByReplacingOccurrencesOfString:@"\\s+([.?])"
withString:@"$1"
options:NSRegularExpressionSearch
range:NSMakeRange(0, [string length])];
正規表現は暗号化できますが (詳細についてはNSRegularExpression のドキュメントを参照してください)、これは「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: @""];
}
}