redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

(小ネタ)改行文字を削除する

ささいな事ですが、うっかり引っかかったのでまとめておきます。

C#で文字列に含まれている改行文字を取り除く方法は、改行文字を含む位置によって違います。

  • 末尾にある場合

TrimEndメソッドに改行文字を渡します。環境に依存しないようにCRとLFを両方とも渡します。

string m = "あいうえお\n";
m.TrimEnd('\r', '\n'));
  • 先頭にある場合

TrimStartメソッドに改行文字を渡します。こちらを使うことはあまり無いと思います。

string m = "\nかきくけこ";
m.TrimStart('\r', '\n'));

先頭と末尾の両方を対象とするTrimメソッドというものもあります。

  • 文中にある場合

文中に改行文字がある場合は、Trim***メソッドでは処理されません。ここに引っかかってしまいました。

この場合は、Replaceメソッドを使用します。注意点としては改行文字は、ダブルクォートで囲むことです。

string m = "さしすせそ\nたちつてと";
m.Replace("\r", "").Replace("\n", "");

上記の例では、文字列に含めた改行文字には \n を使用しましたが、\r でも \r\n でも、Environment.NewLineでも動作します。

参考サイト

文字列内の改行文字を削除するには?[C#、VB] − @IT