【C#入門】String.Splitで文字列を分割(複数文字、文字数でも分割)

String.Splitメソッドって使ってますか?

C#ではStringクラスのSplitメソッドを使うと、文字列を指定の区切り文字で分割し配列に格納することができます。

この記事では、Splitメソッドについて

  • String.Splitメソッドとは
  • Splitメソッドの使い方
  • 複数の文字で分割
  • リストに格納する
  • 文字数で分割
  • 正規表現で分割

など基本的な内容から、応用的な内容についても解説していきます。

今回はSplitメソッドについて、使い方をわかりやすく解説します!

String.Splitメソッドとは

String.SplitメソッドとはStringクラスメソッドの一つで、文字列を指定した区切り文字で分割し配列に格納する場合に使います

区切り文字以外にも、文字列でも分割することができます。また、区切り文字や文字列は配列で指定することで複数指定することができます。

オプションとしてStringSplitOptions.RemoveEmptyEntriesを指定すると、分割され格納される配列の要素が空の場合は省略することができます。

Splitメソッドはいろいろな区切り文字、文字列で分割することが多いので、それぞれの場合について詳しくみていきましょう。

Splitメソッドの使い方

ここでは一つの区切り文字、文字列で分割する場合についてみていきます。

スペースで分割

文字列中に含まれるスペースで文字列を分割する方法についてみていきましょう。

実行結果:

カンマで分割

次は文字列中に含まれる「,」(カンマ)で文字列を分割する場合です。

実行結果:

改行コードで分割

文字列中に含まれる改行コード「\r\n」で文字列を分割する場合も確認しておきましょう。

C#の場合改行コードは「\r\n」2文字で表します。

文字列で分割する場合は、その文字列を格納した配列とStringSplitOptionsを引数に指定する必要があります。

実行結果:

文字列で分割

それでは、文字列で分割する方法についても確認しましょう。

実行結果:

複数の文字で分割

Splitメソッドは複数の区切り文字を配列で指定することができます。

それでは「(」、「)」という2つの文字で分割してみましょう。

実行結果:

リストに格納する

Splitメソッドの戻り値は配列ですので、リストに格納するには型の変換が必要です。

リスト型オブジェクトからAddRangeメソッドを使って、配列を空のリストに追加します。

実行結果:

AddRangeメソッドなどの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】Add、RemoveでListの要素を追加、削除する方法
更新日 : 2019年5月22日

文字数で分割

Splitメソッドは文字数を指定して文字列を分割することはできません

文字数を指定して文字列を分割するには、独自のメソッドを作る必要があります。

拡張メソッドを作って、Splitメソッドと同じように呼び出せるようにしてみましょう。

実行結果:

Substringメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【C#入門】String.Substringで文字列の指定部分を抜き出す方法
更新日 : 2019年4月19日

正規表現で分割

StringクラスのSplitメソッドでは正規表現を使って分割することはできません

正規表現とはいくつかの文字列を一つの形式でまとめて表現するための表現方法のことです。主な正規表現については下記のとおりになります。

記号記号の説明例の説明
.任意の1文字。改行文字は除く。.+任意の文字列
*直前の1文字の0回以上の繰り返しと一致hoge*hogeもしくはhogee...と一致
^行の先頭^[0-9]行頭が数字
$行の末尾^.{10}$10文字の行
[ ]カッコ内の任意の1文字と一致。「-」で範囲指定可。[a-z]小文字のアルファベット1文字と一致
[^ ]カッコ内の任意の1文字と不一致。「-」で範囲指定可。[^A-Z]大文字のアルファベット以外
+直前の文字の1個以上の繰り返しと一致hoge+hogee...と一致
?直前の文字の0または1文字と一致hoge?eと一致
{ }カッコ内の数値の繰り返しと一致{n}直前の文字のn個の繰り返しと一致
{,n}直前の文字のn個以下の繰り返しと一致
{m,}直前の文字のm個以上の繰り返しと一致
{m,n}直前の文字のm個以上、n個以下の繰り返しと一致
|直前、直後どちらかのパターンに一致hoge|piyohogeまたはpiyo
( )カッコ内をグループ化。マッチした内容は参照可。

正規表現を使って分割するには、System.Text.RegularExpressions.RegexクラスのSplitメソッドを使う必要があります。

実行結果:

まとめ

ここでは、Splitメソッドについて説明しました。

Splitメソッドは区切り文字や文字列で文章を分割することができます。使いこなすことができるように、この記事を何度も参考にして下さいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説