c# string プログラミング

【C#】string文字列から指定箇所を切り出す方法|String.Substring()を使った方法

C#で、ある文字列から指定した箇所を切り出す方法を紹介します。


string文字列から指定箇所を切り出す方法|String.Substring()を使った方法

例えば「あいうえお」から「うえお」を切り出したいという場合。

 

サンプルソースを以下。

ポイントは

text.Substring(3)

StringのSubstring()を使う事で、引数で指定した位置(インデックス)からの、文字列を取得可能となります。

 

今回の例では、Substring(3)と「3」を指定しているので、インデックス3の「え」以降が取得できます。

つまり「え」以降なので、「えお」が取得できます。

 

今度は、"abcde" で見てみましょう。

といっても、先ほどと同じです。

インデックス3以降の「de」を切り出すことが可能となります。

 

切り出したい文字列の位置(インデックス)が分かっている場合は、Substringが活躍してくれます!

 

ちなみに、

「Substring(3, 2);」のように、第二引数で切り取る文字数を指定することもできます。

上記の例だと、Index3から長さ2つ分の文字列を切り出す、という動作になります。

string文字列から指定箇所を切り出す方法|IndexOfで指定した文字列以降を切り出す方法

ある文字列に含まれる、文字列以降を切り出したい!という場合は、IndexOfと組み合わせると便利です。

 

たとえば以下。

「あいうえお」という文字列の中から、「え」を探して、それ以降の文字列を取得したい場合。

この場合だと、indexに3が取得できます。

Substringでインデックス3以降の文字列を取得できる、となります。

 

ここで注意したいのが、IndexOfで期待した文字列が見つからなかった場合。

この場合、Indexには「-1」が返ります。そして、そのIndexを使ってSubstringすると以下のような例外が発生します。

Substring

不具合の原因になるので、IndexOfの戻りはしっかりと判定したいところです。

以下のようにすると良いでしょう。

IndexOfの戻り値が、0以上であるか(見つかったか?)をしっかりと判定するようにします。

まとめ

string文字列から指定箇所を切り出すには、「Substring」を活用しよう。

IndexOfで指定した文字列以降を切り出す方法も良く使われ、とても便利

\この記事はどうでしたか?/

-c#, string, プログラミング

© 2021 ジョブログLiFE