C# の String.Split
を使うことで、例えば “あ,い,う,え,お” という文字列をコンマ区切りで分割し、1文字ずつの配列やリストにすることができます。
本記事では String.Split
を使った文字列の分割方法を紹介します。
目次
文字列を「カンマ区切り」で分割する方法
String.Split
の引数には分割に使う文字列を指定します。
文字列をカンマ区切りで分割したい場合は、String.Split
の引数に ,
を指定します。
using System;
public class Sample
{
public static void Main()
{
string str = "火,水,雷";
string[] arr = str.Split(','); // 文字列を「,」で分割
Console.WriteLine("配列の要素数:{0}", arr.Length);
Console.WriteLine("{0}", string.Join(" ", arr));
}
}
上記コードでは分割した文字列を string
配列に格納しています。
実行結果
配列の要素数:3
火 水 雷
文字列を「スペース」で分割する方法
文字列をスペース区切りで分割したい場合は、String.Split
の引数に
(スペース)を指定します。
using System;
public class Sample
{
public static void Main()
{
string str = "火 水 雷 光 闇";
string[] arr = str.Split(' ');
Console.WriteLine("配列の要素数:{0}", arr.Length);
Console.WriteLine("{0}", string.Join(" ", arr));
}
}
実行結果
配列の要素数:5
火 水 雷 光 闇
文字列を「1文字ずつ」分割する方法
文字列を1文字ずつ分割するには、 String.ToCharArray()
メソッドを使用します。
このメソッドを使うと、文字列が1文字ずつ格納された char
型の配列として取得できます。
using System;
public class Sample
{
public static void Main()
{
string str = "12345";
char[] arr = str.ToCharArray();
Console.WriteLine("{0}", string.Join(" ", arr));
}
}
実行結果
1 2 3 4 5
文字列を「改行ごと」に分割する方法
文字列を改行ごとに分割するには、String.Split
の第一引数に new string[] { Environment.NewLine }
を指定し、第二引数に StringSplitOptions.None
を指定します。
using System;
public class Sample
{
public static void Main()
{
string str = @"1行目
2行目
3行目";
string[] arr = str.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
Console.WriteLine("配列の要素数:{0}", arr.Length);
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(arr[i]);
}
}
}
実行結果
配列の要素数:3
1行目
2行目
3行目
第二引数に指定したStringSplitOptions
にはNone
の他にいくつか種類があります。以下に内容を解説します。
オプション名 | 内容 |
---|---|
StringSplitOptions.None | オプションはなし。 |
StringSplitOptions.RemoveEmptyEntries | 分割した結果からの空の文字列を含む配列要素を省略する。 |
StringSplitOptions.TrimEntries | 分割結果内の各部分文字列の空白文字をトリミングする。 ※ .NET 5 以降のバージョンでのみ使用可能 |
分割した文字列をリスト型にする方法
分割結果をリスト型 ( List ) にしたい場合は、ToList()
メソッドを使用することで実現可能です。
List の使用にはusing System.Collections.Generic;
、 ToList()
の使用には using System.Linq;
をコード上部で宣言する必要があります。
using System;
using System.Collections.Generic;
using System.Linq;
public class Sample
{
public static void Main()
{
string str = "火,水,雷";
List<string> strList = str.Split(',').ToList();
Console.WriteLine("リストの要素数:{0}", strList.Count);
Console.WriteLine("{0}", string.Join(" ", strList));
}
}
実行結果
リストの要素数:3
火 水 雷
参考リンク
- String.Split メソッド (System) | Microsoft Learn
- String.ToCharArray メソッド (System) | Microsoft Learn
- StringSplitOptions 列挙型 (System) | Microsoft Learn
関連記事
【C#】ToString() の書式指定子で文字列をカスタマイズする 【 C# 】文字列を連結させる6つの方法【StringBuilder, Joinなど】