• ベストアンサー

C# 文字列を改行コードで分割

C# 文字列を改行コードで分割 テキストボックスに記載された文字列を1行ごとに取り出そうと思い string[] strs = textBox1.Text.Split('\n'); とコーディングしたら、末尾に\rがついてしまいました。 末尾の\rを削除するコードを追加して書けばよいのですが、改行コード\r\nで分割する方法ありましたらお教えください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Splitメソッドでは、'\r'(0x000d)や'\n'(0x000a)などの制御記号は空白文字として扱われます。 また、引数が省略された場合やNULLだった場合は、区切り文字として空白文字が指定されたことになります。 したがって string[] strs = textBox1.Text.Split(NULL); とすれば、改行コードで分割されます。 もっとも、この場合は'\t'(0x0009)とか' '(0x0020)でも分割されてしまいますが。 きちんと改行を指定する場合は string[] strs = textBox1.Text.Split(new Char[]{'\r','\n'}); とします。 この場合は改行位置に空の文字列("")が返されるみたいですが。

usatan2
質問者

お礼

ありがとうございます。 string[] strs = textBox1.Text.Split(NULL); でうまくいきました! ちなみに空行は無視するので今回は問題ありませんが、1行が、\r と \n で2回分割されるので、直後に空行が入るようですね。

関連するQ&A