C# Split 文字列を分割して配列にする

C#の文字列を分割して配列にするサンプルです。

目次

サンプル splitとは(文字列を分割して配列にする)
  カンマで区切る / 半角スペースで区切る / タブで区切る / 改行で区切る
  正規表現で区切り文字をORで指定
  文字列の末尾が空文字の時も要素として取得

splitとは(文字列を分割して配列にする)

  • 文字列が引数(文字列 or 正規表現)にマッチすると、そこで文字列を区切ります。
  • StringクラスのSplitメソッドは文字列で区切ります。
  • RegexクラスのSplitメソッドは正規表現を使えます。
  • 戻り値はstringの配列です。
  • 以下はMicrosoftのSplitメソッドのリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/csharp/how-to/parse-strings-using-split

カンマで区切る

using System;
class Test1
{
	static void Main()
	{
		var color1 = "赤,黄,青";
		var arr1 = color1.Split(',');

		foreach (string s in arr1)
		{
			Console.WriteLine(s);// 赤 黄 青
		}
		Console.WriteLine(arr1.Length); // 3
	}
}

7行目は、文字列をカンマで区切って配列にしています。

半角スペースで区切る

using System;
class Test1
{
	static void Main()
	{
		var color1 = "赤 黄 青";
		var arr1 = color1.Split(' ');

		foreach (string s in arr1)
		{
			Console.WriteLine(s);// 赤 黄 青
		}
		Console.WriteLine(arr1.Length); // 3
	}
}

7行目は、文字列を半角スペースで区切って配列にしています。

タブで区切る

using System;
using System.Text.RegularExpressions;

class Test1
{
	static void Main()
	{
		var str1 = "赤	黄	青";
		var arr1 = Regex.Split(str1, "\t");

		foreach (string s in arr1)
		{
			Console.WriteLine(s);// 赤 黄 青
		}
		Console.WriteLine(arr1.Length); // 3
	}
}

正規表現でタブを指定しています。(バックスラッシュ(円記号)+t)

改行で区切る

using System;
using System.Text.RegularExpressions;

class Test1
{
	static void Main()
	{
		var str1 = "赤と黄\r\n青と緑\n白と黒";
		var arr1 = Regex.Split(str1, "\r\n|\n");

		Console.WriteLine(arr1[0]);//赤と黄
		Console.WriteLine(arr1[1]);//青と緑
		Console.WriteLine(arr1[2]);//白と黒
		Console.WriteLine(arr1.Length); // 3
	}
}

正規表現で改行を指定しています。
\r\nは復帰改行(CRLF)、\nは改行(LF)、パイプ(|)はorを意味します。

正規表現で区切り文字をORで指定

using System;
using System.Text.RegularExpressions;

class Test1
{
	static void Main()
	{
		var str1 = "1:a,2:b,3:c";
		var arr1 = Regex.Split(str1, "[,:]");

		foreach (string s in arr1)
		{
			Console.WriteLine(s);// 1 a 2 b 3 c
		}
		Console.WriteLine(arr1.Length); // 6
	}
}

9行目の[,:]は、カンマ(,)またはコロン(:)という正規表現です。

文字列の末尾が空文字の時も要素として取得

using System;

class Test1
{
	static void Main()
	{
		var str1 = "a,b,c,,";
		var arr1 = str1.Split(',');

		foreach (string s in arr1)
		{
			Console.WriteLine(s);//「a」「b」「c」「」「」
		}
		Console.WriteLine(arr1.Length);//5
	}
}

7行目は、末尾がカンマで終わっています。
結果は、12,14行目のように空文字も要素として取得します。

関連の記事

C# 文字列の始まり/終わりを確認(StartsWith/EndsWith)
C# 文字列の位置を取得する(indexOf/lastIndexOf)
C# Replace 文字列を置き換えるサンプル
C# 文字列を切り出す(Substring)

△上に戻る