【C#入門】String.Substringで文字列の指定部分を抜き出す方法

Substringメソッドって使ってますか?Substringメソッドを使うことで、文字列からある指定の文字列を抜き出すことができます。

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

  • String.Substringメソッドとは
  • String.Substringで文字列を抜き出す

という基本的な内容から、

  • IndexOfメソッドとの組み合わせ

など具体的な使い方の内容についても解説していきます。

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

目次

String.Substringメソッドとは

SubstringメソッドとはStringクラスのメソッドで、文字列から指定の文字列を抜き出す場合に使います。

Substringメソッドは以下のように定義されています。

public string Substring(
    int startIndex,
    int length
)

引数Substringには、抜き出す文字列の開始文字位置を0から指定します。引数lengthには、抜き出す文字列の文字数を指定します。

引数lengthを省略すると、末尾まで抜き出します

String.Substringで文字列を抜き出す

それでは、サンプルコードでSubstringメソッドの使い方を確認しましょう。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "侍エンジニア塾";
      Console.WriteLine(str.Substring(0, 1));
      Console.WriteLine(str.Substring(1, 5));
      Console.WriteLine(str.Substring(6));
      
      Console.ReadKey();
    }
  }
}

実行結果:

侍
エンジニア
塾

このサンプルコードでは、Substringメソッドを使って開始位置と文字数を指定して、文字列strから部分文字列の一部分を抜き出しています。

IndexOfメソッドとの組み合わせ

先ほどのサンプルコードでは、抜き出す部分文字列の開始位置と文字数をあらかじめ数値で指定しました。

しかし、抜き出す文字列を変数で変えられるようにした場合は、その文字列がどの位置から開始するかも変わってきます。

その場合は、IndexOfメソッドを使って文字列の開始位置を取得します。IndexOfメソッドを以下のように定義されています。

public int IndexOf(
    string value
)

引数valueには探す文字列を指定します。

SubstringメソッドとIndexOfメソッドを組み合わせて指定した文字列を抜き出す方法を確認しましょう。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string src_str = "侍エンジニア";
      string target_str = "エンジニア";
      Console.WriteLine(src_str.Substring(
                          src_str.IndexOf(target_str), 
                          target_str.Length));
      
      Console.ReadKey();
    }
  }
}

実行結果:

エンジニア

このサンプルコードでは、SubstringメソッドとIndexOfメソッドを組み合わせて文字列を抜き出しています。

抜き出す文字列の開始位置をIndexOfメソッドを使って取得し、Lengthプロパティを使って文字数を取得しています。

IndexOfメソッドの詳しい使い方は次の記事で解説しているので、ぜひ確認してください。

文字列の使い方総まとめ

文字列の様々な使い方は次の記事でまとめて解説しているので、その他の文字列の使い方に興味がある方はぜひ確認してください。

まとめ

ここでは、StringクラスのSubstringメソッドについて説明しました。

SubstringメソッドはIndexOfメソッドと組み合わせて使われることも多いです。

使いこなすことができるように、この記事を何度も参考にして下さいね!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次