NSStringの最初の行から改行文字を削除します
-
05-07-2019 - |
質問
NSStringから最初の \ n 文字を削除するにはどうすればよいですか?
編集:明確にするために、私がやりたいことは: 文字列の最初の行に\ n文字が含まれている場合は削除し、それ以外の場合は何もしません。
ie:文字列が次のような場合:
@"\nhello, this is the first line\nthis is the second line"
そして最初の行に改行を含まない文字列とは対照的:
@"hello, this is the first line\nthis is the second line."
それがより明確になることを願っています。
解決
これでうまくいくはずです:
NSString * ReplaceFirstNewLine(NSString * original)
{
NSMutableString * newString = [NSMutableString stringWithString:original];
NSRange foundRange = [original rangeOfString:@"\n"];
if (foundRange.location != NSNotFound)
{
[newString replaceCharactersInRange:foundRange
withString:@""];
}
return [[newString retain] autorelease];
}
他のヒント
[string stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]]
必要に応じて、あらゆる種類の改行から文字列を削除します。
[string stringByReplacingOccurrencesOfString:@"\n" withString:@"" options:0 range:NSMakeRange(0, 1)]
文字列の最初の文字である場合は、要求どおりに改行を削除し、改行を削除します
NSMutableStringを作成していくつかの保持/解放呼び出しを使用するのではなく、元の文字列のみを使用し、代わりに次を使用してコードを簡素化できます:(10.5以降が必要)
NSRange foundRange = [original rangeOfString:@"\n"];
if (foundRange.location != NSNotFound)
[original stringByReplacingOccurrencesOfString:@"\n"
withString:@""
options:0
range:foundRange];
( -stringByReplacingOccurrencesOfString:withString:options:range:
詳細については。)
最後の呼び出しメソッド呼び出しの結果は、元の IF に最初に存在するものを自動解放してメモリをリークしないように、安全に元の割り当てに戻すこともできます。
所属していません StackOverflow