.NET TIPS

Stringクラスにより文字列を文字列で分割するには?[2.0のみ、C#、VB]

デジタルアドバンテージ 遠藤 孝信
2006/01/27

 .NET Framework 1.xでは、ある文字列を特定の文字列で分割するには、正規表現が利用可能なRegexクラス(System.Text.RegularExpressions名前空間)のSplitメソッドを使用するか、VB用のSplit関数を使用しなければならなかった(後者については「TIPS:文字列を文字列により分割するには?(VB.NET関数活用)」を参照)。

 しかしもっと安易に利用できる手段が望まれていたようで、.NET Framework 2.0のStringクラス(System名前空間)には、文字列を文字列により分割できる、Splitメソッドの新しいバージョンが追加されている。

 この新しいSplitメソッドは、第1パラメータで指定した文字列配列の要素で対象となる文字列を分割し、その結果を文字列配列として返す。第2パラメータでは、戻り値に空の配列要素を含めるかどうかをStringSplitOptions列挙体(System名前空間)の値(NoneあるいはRemoveEmptyEntries)で指定する。

 以下にこのバージョンのSplitメソッドを使用したサンプル・プログラムを示す。

// stringsplit.cs

using System;

class StringSplit {
  static void Main() {
    string target = "abcくぎりクギリdefクギリghiクギリjkl";
    string[] delimiter = { "くぎり" , "クギリ", "クギリ" };

    string[] parts;
    parts = target.Split(delimiter,
                     StringSplitOptions.None);

    foreach (string s in parts) {
      Console.WriteLine(s);
    }
    // 出力:※空の配列要素が含まれている
    // abc
    //
    // def
    // ghi
    // jkl

    parts = target.Split(delimiter,
                     StringSplitOptions.RemoveEmptyEntries);

    foreach (string s in parts) {
      Console.WriteLine(s);
    }
    // 出力:※空の配列要素は含まれない
    // abc
    // def
    // ghi
    // jkl
  }
}

// コンパイル方法:csc stringsplit.cs
Stringクラスにより文字列を文字列で分割するC#のサンプル・プログラム(stringsplit.cs)
 
' stringsplit.vb

Imports System

Class StringSplit
  Shared Sub Main()
    Dim target As String = "abcくぎりクギリdefクギリghiクギリjkl"
    Dim delimiter As String() = { "くぎり" , "クギリ", "クギリ" }

    Dim parts As String()
    parts = target.Split(delimiter, StringSplitOptions.None)

    For Each s As String In parts
      Console.WriteLine(s)
    Next
    ' 出力:※空の配列要素が含まれている
    ' abc
    '
    ' def
    ' ghi
    ' jkl

    parts = target.Split(delimiter, _
                  StringSplitOptions.RemoveEmptyEntries)

    For Each s As String In parts
      Console.WriteLine(s)
    Next
    ' 出力:※空の配列要素は含まれない
    ' abc
    ' def
    ' ghi
    ' jkl
  End Sub
End Class

' コンパイル方法:vbc stringsplit.vb
Stringクラスにより文字列を文字列で分割するVBのサンプル・プログラム(stringsplit.vb)

 なお、文字列を「文字」で分割するSplitメソッドのバージョンは以前からあったが、StringSplitOptions列挙体の値がパラメータとして追加されたバージョンが新しく用意されている。End of Article

利用可能バージョン:.NET Framework 2.0のみ
カテゴリ:
クラス・ライブラリ 処理対象:文字列
使用ライブラリ:Stringクラス(System名前空間)
使用ライブラリ:StringSplitOptions列挙体(System名前空間)
関連TIPS:文字列を文字列により分割するには?(VB.NET関数活用)

この記事と関連性の高い別の.NET TIPS
文字列を文字列により分割するには?(VB.NET関数活用)
メソッドに可変長パラメータを渡すには?
正規表現を使って文字列を分割するには?[C#/VB]
文字と文字列を変換するには?
文字列から特定の文字列を取り除くには?[C#、VB]]
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間