C# Splitメソッド入門|文字列を指定した文字で分割する

広告

文字列の中にカンマなどの区切り文字が含まれているとき、C#ではSplitメソッドを使うと、文字列を複数の要素に分割できます。

この記事では、本のタイトルと著者名をカンマで区切ったデータを例に、Splitメソッドの基本から、分割した値をオブジェクトへ代入する方法まで解説します。

Splitメソッドとは

Splitメソッドは、指定した文字を目印にして、1つの文字列を複数の文字列へ分割します。分割した結果はstring[]型の配列になります。

var str = "銀河鉄道の夜,宮沢賢治";
var items = str.Split(',');
  • items[0]:銀河鉄道の夜
  • items[1]:宮沢賢治

配列の要素番号は0から始まります。最初の要素はitems[0]です。

カンマで文字列を分割する

var str = "銀河鉄道の夜,宮沢賢治";
var items = str.Split(',');  // カンマで分割する

Console.WriteLine("Title: {0}", items[0]);
Console.WriteLine("Author: {0}", items[1]);

実行結果

Title: 銀河鉄道の夜
Author: 宮沢賢治

str.Split(',')によって、カンマの前後が別々の要素になります。区切り文字そのものは、分割後の文字列には含まれません。

分割した値をBookオブジェクトへ代入する

分割した文字列は、オブジェクトのプロパティにも代入できます。

ここでは、次のようなBookクラスが定義されているものとします。

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
}
var str = "吾輩は猫である,夏目漱石";
var items = str.Split(',');

var book = new Book
{
    Title = items[0],
    Author = items[1],
};

Console.WriteLine($"{book.Title}, {book.Author}");

items[0]Titleプロパティへ、items[1]Authorプロパティへ代入されます。

空白や空の要素を取り除く

実際のデータには、余分な空白や空の要素が含まれることがあります。その場合はStringSplitOptionsを指定すると便利です。

var str = "銀河鉄道の夜, ,宮沢賢治";

var items = str.Split(
    ',',
    StringSplitOptions.TrimEntries |
    StringSplitOptions.RemoveEmptyEntries
);
  • TrimEntries:各要素の前後にある空白を削除する
  • RemoveEmptyEntries:空の要素を配列へ含めない

配列の要素数を確認する

区切り文字がない文字列を分割すると、配列の要素は1つだけになります。この状態でitems[1]を参照すると例外が発生するため、必要に応じて要素数を確認しましょう。

var items = str.Split(',');

if (items.Length >= 2)
{
    Console.WriteLine($"タイトル:{items[0]}");
    Console.WriteLine($"著者:{items[1]}");
}
else
{
    Console.WriteLine("タイトルと著者をカンマで区切ってください。");
}

練習問題

次の文字列を|で分割し、商品名・価格・在庫数を表示してください。

var str = "ノート|180|25";
解答例を見る
var str = "ノート|180|25";
var items = str.Split('|');

if (items.Length >= 3)
{
    Console.WriteLine($"商品名:{items[0]}");
    Console.WriteLine($"価格:{items[1]}円");
    Console.WriteLine($"在庫数:{items[2]}個");
}

まとめ

Splitメソッドを使うと、指定した区切り文字で文字列を分割し、string[]型の配列として受け取れます。

string[] 分割結果 = 元の文字列.Split(区切り文字);

「文字列を分割する」「配列から値を取り出す」「必要なオブジェクトへ代入する」という流れを覚えておくと、CSV形式のデータや入力文字列を扱う場面にも応用できます。

訪問数 5 回, 今日の訪問数 5回

広告

C#,入門C#,Split

Posted by hidepon