• ベストアンサー

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

  • C#: 改行コードを含む文字列の長さ検出

    前略  下記のような改行コードを含む文字列について、”改行コードを1文字として、文字列の長さを取得”したいのですがどのようにすればよいのか教えてください。 string str = "aaa\nbbb\nccc\nddd\n"; str.Length では 改行コードを含まない値が取得されてしまいます。 以上、よろしくおねがいします。

  • 改行コードを含む文字列の分割について

    Java初心者です。 Java言語で、ある文字列を"\r\n"だけを区切り記号として別々の文字列にしたいのですがうまくいきません。 StringTokenizerを使って、 StringTokenizer(msg,"\\r\\n") のようにやって見たのですが、これだと"\r"や"\n"まで区切り記号として分割されてしまいました。 "\r\n"だけを区切り記号として処理するにはどうしたらいいでしょうか? 例えばPOSTで送信した"データ1\r\nデータ2\r\nデータ3\nテスト"という文字列を、 "データ1"、"データ2"、"データ3\nテスト"の3つにしたいのですが。

    • ベストアンサー
    • Java
  • 【C#】特定の改行コードのみで1行ずつ取得したい

    C#でツールを作成しています。 テキストファイルの中を1行ずつ読み取りたいです。 ただし、改行コード \r\n と \n が混在しており、 \r\n までを1行として取得したいのです。 ReadToEndで一旦すべての文字列を取得し、 Split("\r\n")で分割という方法で解決はするのですが ファイルサイズが膨大な場合、どうしても処理が重くなってしまいます。 ReadLineなどで上手くできる方法はないでしょうか? よろしくお願いします。

  • Objective-c 改行コードによる文字列の分割方法について

    componentsSeparatedByString:を使って、改行コードでパースしようとしましたが、一つのパターンでしか対応出来ませんでした。 例えば、WindowsなどのExcelのcsvファイルを読み込もうとした場合、そのファイルの改行コードは、"\n" or "\n\r" or "\r" などのパターンがあり、それらのパターンを対応させる方法が見出せません。 どの様な方法でなら、実現出来るのでしょうか? 因みに、現在のコードを抽出すると NSString *parsedString; parsedString = [[parsedString componentsSeparatedByString:@"\r"] objectAtIndex:0]; このようなコードで、文字列の最後尾の改行コードを除去しております。

  • 改行コード等について

    Winで普通のテキストエディタで改行やタブ等すると、実際には改行コード(\n\r等)を入力していると思います。そのコードを含めた文字列を全て表示して見てみたいのですが、どうすれば見られるでしょうか?

  • 改行コードから改行コードまでをスプリットして配列に取り込む方法を教えて

    改行コードから改行コードまでをスプリットして配列に取り込む方法を教えてください。 ファイル「sample.txt」の中に 文字列A 文字列B 文字列C 文字列D 文字列E 文字列F 文字列G と書かれていたとします。このファイルを開き、配列@listに @list = 文字列A\r\n文字列B\r\n文字列C\r\n,文字列D\r\n文字列E\r\n,文字列F\r\n文字列G\r\n となるようなコードを教えてください。 要は二重改行コード\r\n\r\nをスプリッタとして複数の行を配列に取り込む方法です。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • VB2010 シリアル通信の文字列を分けたい

    ふたつの温度計があって、室温が23度外気温が18度の場合、 シリアル通信によって2318としておくられてきます。 そしてこれがTextBox2に2318と表示されます。 Delegate Sub DataDelegate(ByVal sdata As String) Private Sub PrintData(ByVal sdata As String) TextBox2.Text = sdata End Sub ここまではなんとかうまくいきました。ここからが質問なんですが、 このsdataをTextBox3とTextBox4に23℃、18℃と分けて表示したいのですが うまくいきません。substringを使って、  sdata = sdata.Substring(0, 2)  TextBox3.Text = sdata などとやってみましたが 「インデックスおよび長さは文字列内の場所を参照しなければなりません。」 とエラーとなってうまくいきません。どう書いたらいいのかおしえてください。 尚、シリアル通信は改行コードを頭につけて、\r\n2318 と連続的に送られてくる んですがこれが問題なんでしょうか。

  • C# 文字列の分割

    VS2005を使用しているものです。 複数のURL(入力)を格納したString型の配列があるのですが、 この配列から各要素(URL)の最後尾にあるファイル名だけを 取り出して別のString型の配列に入れたいのですが Splitなどを駆使すればよいのでしょうか? 例 C:\○○○\▲▲▲\××.拡張子 (元の配列の要素の一例)   などから××.拡張子の文字列だけを取り出して   別の配列に格納する感じです。 splitを使う際は\などを区切りに考えています。 for文の中でsplitを駆使しようと考えたのですが、分割した文字列を別で配列に格納して、その最後尾の要素だけ取り出したいのですが、URLの長さは入力によってまちまちなのでどのようにして取り出せばよいか困っています。 勉強不足で恐れ入りますが、何かご教授願えれば幸いです。

  • 改行コード

    SQL文について教えていただきたいことがあります。 ある列に改行コードを含む文字列があります、 その文字列をまず改行コード毎に分割します、 その後に文字列の最後にある改行コードを消してしまいたいのですがどうすればよろしいでしょうか?みなさま宜しくお願い致します。 例)○=改行コード ABCD○ABCDE○ABC○ → ABCD○ ABCDE○ ABC○ → ABCD ABCDE ABC

  • 文字+改行コードの置換について

    文字+改行コードの置換についてご教授ください。 テキスト内の数字「9」とそれに続く改行コードのみ置換(削除)対象にしています。 全ての改行コードが対象ではないため、下記のようにエディタ(sakuraエディタ)で指定しました。 置換前: 9\r\n ※削除したいため、置換後の欄は空欄にしています。 しかし、この設定だと置換前の文字列を置換対象として認識しません。(検索対象としても) \r\n だけだと改行コードを認識するので、文字と改行コードのセットを認識していないようです。 指定に誤りがあるのでしょうか。詳しい方ご教授お願いします。

専門家に質問してみよう