一回も披露したことのない豆知識

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

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

A 回答 (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'});
とします。
この場合は改行位置に空の文字列("")が返されるみたいですが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/05/23 10:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!