.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. C#
  5. StringクラスのSplitメソッドの使い方|文字列の分割方法

StringクラスのSplitメソッドの使い方|文字列の分割方法

  • C#
  • プログラミング言語
公開日時:   更新日時:
StringクラスのSplitメソッドの使い方|文字列の分割方法
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>
    プログラマー
    カンマ区切りのCSVファイルをアップロードして、プログラム内部でカンマを使って文字列を分割したいのですが、何か良い方法はありますか?すいません。教えてください!!
    プロジェクト
    リーダー
    文字列の分割で思いつくのはSplitメソッドですね。C#でコーディングしているのなら、String.Splitを使ってみてください。

    C#のStringクラスのSplitメソッドについて


    .NET Framework 2.0から搭載されたString.Splitメソッドは、指定した文字で文字列を分割し、配列に格納してくれるとても便利な命令です。
    第1パラメータで指定した文字列配列の要素で対象となる文字列を分割します。以降のサンプルプログラムでは”X”で分割するように指定しています。第2パラメータでは、戻り値に空白の配列要素を含めるかどうかをオプションで指定できます。

    「StringSplitOptions.RemoveEmptyEntries」を指定すると空白は含めない、「StringSplitOptions.None」を指定すると、空白を含めることになります。オプションですのでもちろん省略可です。戻り値の配列は文字列で設定されます。
    次にサンプルプログラムを見ながら実際の動作を確認していきましょう。

    StringクラスのSplitメソッドの基本構文

    String.Splitメソッドの基本構文は以下の様になります。
    string[] splitted =文字列.Split(separator, nums, options)
    separator:区切り文字か区切り文字列
    nums:個数指定(任意),
    options:オプション(任意)

    例えば以下のような文字列があります。

    これを文字’X’を区切り文字、分割後の文字列で空白を無視するコードは以下になります。
    StringSplitOptions.RemoveEmptyEntriesは空白を無視するというオプションです。

    StringクラスのSplitメソッドの使い方8つ

    これよりseparatorに区切り文字や区切り文字列、正規表現などを指定した例と、個数指定を使ったコード例を提示します。

    Visual Studio Community 2019でWindows フォームアプリケーション(.Net Framework 4.8)のプロジェクトにて作成しています。
    フォーム上にbutton1~button10まで計10個のボタンを張り付けて順に使用しています。

    1:文字列で分割する方法

    以下に文字列で分割するサンプルを提示します。

    string[] splitted =文字列.Split(separator, options)
    separator:区切り文字列{ “XX” }を指定します。
    options:オプションにStringSplitOptions.Noneを指定します。

    上のサンプルプログラムを実行すると、以下のように表示されます。

    2:複数の区切り文字を配列で指定する方法

    以下に複数の区切り文字を配列で指定して文字列を分割するサンプルを提示します。

    string[] splitted =文字列.Split(separator, options)
    separator:複数の区切り文字として配列{ ‘X’, ‘2’ }を指定します。
    options:オプションにStringSplitOptions.RemoveEmptyEntriesを指定します。

    上のサンプルプログラムを実行すると、以下のように表示されます。

    3:カンマで文字列を分割する方法

    以下にカンマで文字列を分割するサンプルを提示します。

    string[] splitted =文字列.Split(separator, options)
    separator:区切り文字に’,’を指定します。
    options:オプションにStringSplitOptions.RemoveEmptyEntriesを指定します。

    上のサンプルプログラムを実行すると、以下のように表示されます。

    4:改行コードで文字列を分割する方法

    以下に改行コードで文字列を分割するサンプルを提示します。

    string[] splitted =文字列.Split(separator, options)
    separator:区切り文字列に”\r\n”を指定します。
    options:オプションにStringSplitOptions.RemoveEmptyEntriesを指定します。

    上のサンプルプログラムを実行すると、以下のように表示されます。

    5:スペースで文字列を分割する方法

    以下にスペースで文字列を分割するサンプルを提示します。

    string[] splitted =文字列.Split(separator, options)
    separator:区切り文字に’ ‘を指定します。
    options:オプションにStringSplitOptions.RemoveEmptyEntriesを指定します。

    上のサンプルプログラムを実行すると、以下のように表示されます。

    6:スラッシュで文字列を分割する方法

    以下にスラッシュ(/)で文字列を分割するサンプルを提示します。

    string[] splitted =文字列.Split(separator, options)
    separator:区切り文字に’/’を指定します。
    options:オプションにStringSplitOptions.RemoveEmptyEntriesを指定します。

    上のサンプルプログラムを実行すると、以下のように表示されます。

    7:文字列または正規表現を指定する方法

    以下に正規表現([2|4])で文字列を分割するサンプルを提示します。

    string[] splitted =Regex.Split(文字列, pattern)
    pattern:区切り文字列に”[2|4]”を指定します。

    上のサンプルプログラムを実行すると、以下のように表示されます。

    8:非負の整数で分割する数を制限する方法

    以下に非負の整数で文字列を分割するサンプルを提示します。

    string[] splitted =文字列.Split(separator, nums)
    separator:区切り文字列に’,’を指定します。
    nums:個数に非負の整数を指定します。

    上のサンプルプログラムを実行すると、以下のように表示されます。

    Splitメソッドの応用

    拡張メソッドとはstaticなクラスで第一引数にthisキーワードを修飾子に持つstaticなメソッドです。

    ここでは以下のような2つの拡張メソッドを作成して、使用する例を提示します。
    ・文字数を指定して文字列を分割するメソッド
    ・正規表現を使って分割するメソッド

    文字数を指定して文字列を分割する方法

    拡張メソッドを使用して、文字列から指定した文字数を取得するSubstringを実装します。

    上記で定義したSubstringの拡張メソッドを使用するサンプルコード以下に提示します。

    上のサンプルプログラムを実行すると、以下のように表示されます。

    正規表現を使って分割する方法

    拡張メソッドを使用して、指定された正規表現で文字を分割するコードを実装します。

    上記で定義した正規表現の拡張メソッドを使用するサンプルコード以下に提示します。

    上のサンプルプログラムを実行すると、以下のように表示されます。

    C#でコーディングするSplitメソッドサンプルプログラム

    オプション「StringSplitOptions.RemoveEmptyEntries」を指定します。

    実行画面
    ボタンを押下しましょう。上記の分割プログラムが実行されて、コンソールで内容を確認できます。

    デバッグで停めて戻り値の配列を確認します。オプションで空白文字を返さない命令を設定しているので、含まれていないことを確認できます。

    コンソール確認

    オプション「StringSplitOptions.None」を指定します。

    デバッグで停めて戻り値の配列を確認します。オプションで空白文字を返す命令を設定しているので、空白が含まれていることを確認できます。

    コンソール確認

    プログラマー
    String.Splitメソッドを使用すると簡単に文字列の分割ができました。これでコーディングを進めていきます。
    プロジェクト
    リーダー
    C#で行う文字列分割といえばSplitメソッドです。ファイルアップロードなどではよく利用する命令だと思います。

    stringクラスのsplitメソッドでの文字列の分割はよく出てくる!

    開発現場では文字列の分割を行う場面は多くあります。C#だけでなく、JavaやPHPを使用して開発を行う場合でも、分割する命令は準備されていますので、ここで利用方法は確実に理解しておくことをおすすめします。
    活用方法を知っているととても便利な命令ですので、分割する必要がある場合は、積極的に利用していきましょう。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    C#新着案件New Job