【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メソッドの詳しい使い方は次の記事で解説しているので、ぜひ確認してください。

【C#入門】IndexOfで文字列やList、配列を検索する方法
更新日 : 2019年5月7日

文字列の使い方総まとめ

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

【C#入門】Stringクラスで文字列操作総まとめ
更新日 : 2019年5月5日

まとめ

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

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

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

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

長野 透

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

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー