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

自分にプログラミングなんて・・・と思っていませんか?

今後10年間で今ある職業の『77%』はなくなると言われています。

人工知能や機械学習を筆頭にVR、AR、ドローンなどの最先端技術の発達はこれからのあなたの働き方に間違いなく影響を与えるでしょう。

将来を見据えてプログラミングができるようになってエンジニアになりたい、自分だけにしかできないクリエイティブな仕事がしたい、、、とお考えの方も少なくないでしょう。

と、同時に「難しそう、、自分にはできないだろう、、、」と諦めている方も多いのではないでしょうか。

弊社マンツーマンレッスンは、お一人お一人に専属のインストラクターがつくので、通常のスクールでは難しい、オリジナルアプリ開発や、フリーランスとしての仕事獲得まで支援しています。

まずは『無料体験レッスン』で弊社コンサルタントと一緒にあなた専用の学習カリキュラムを考えてみてはいかがでしょうか?

詳しくは下の画像をクリックしてください。

cta_mtm2

LINEで送る
Pocket

書いた人

長野 透

長野 透

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

おすすめコンテンツ

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

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